C++中组合和继承的初始化
2014-08-13 21:35
204 查看
在C++中单个类的初始化比较简单就略过不说。
当一个类继承了另外一个类,或者是一个类中还存在一个类
class A{
、、、
};
class B
{
、、、
};
class C:classA{
private:
B bb;
int x
public:
C(int ii):B(ii),bb(ii) ,x(ii){};
};
此时我们进行初始化的设置采用的 C(int ii):B(ii),bb(ii), x(ii)这里必须说清楚的有几点:
1.参数是通过C(int ii)向冒号之后的类或者是变量传递的。
2.冒号后面的类或者是变量用逗号隔开
3.C(int ii)中的参数必须和冒号之后一致。这里是ii
4.继承的类用的B(ii)且在B(ii)在类B中一定要有定义
5.包含的类用的是类定义的对象,这里类定义的对象是bb所以是bb(ii)但是在B中也一定要有B(int )的定义
具体举例如下:
#include<iostream>
using namespace std;
class X{
private :
int i;
public:
X(int ii):i(ii){ };
void print()
{
cout<<i<<endl;
}
};
class Y{
private:
int a;
public:
Y(int ii):a(ii){ };
void print()
{
cout<<a<<endl;
}
};
class Z:public Y{
private:
int i;
X xx;
public:
Z(int ii):Y(ii),xx(ii),i(ii){ };
void print()
{
cout<<i<<endl;
Y::print();
xx.print();
}
};
int main()
{
Z zzz(23);
zzz.print();
return 0;
}
当一个类继承了另外一个类,或者是一个类中还存在一个类
class A{
、、、
};
class B
{
、、、
};
class C:classA{
private:
B bb;
int x
public:
C(int ii):B(ii),bb(ii) ,x(ii){};
};
此时我们进行初始化的设置采用的 C(int ii):B(ii),bb(ii), x(ii)这里必须说清楚的有几点:
1.参数是通过C(int ii)向冒号之后的类或者是变量传递的。
2.冒号后面的类或者是变量用逗号隔开
3.C(int ii)中的参数必须和冒号之后一致。这里是ii
4.继承的类用的B(ii)且在B(ii)在类B中一定要有定义
5.包含的类用的是类定义的对象,这里类定义的对象是bb所以是bb(ii)但是在B中也一定要有B(int )的定义
具体举例如下:
#include<iostream>
using namespace std;
class X{
private :
int i;
public:
X(int ii):i(ii){ };
void print()
{
cout<<i<<endl;
}
};
class Y{
private:
int a;
public:
Y(int ii):a(ii){ };
void print()
{
cout<<a<<endl;
}
};
class Z:public Y{
private:
int i;
X xx;
public:
Z(int ii):Y(ii),xx(ii),i(ii){ };
void print()
{
cout<<i<<endl;
Y::print();
xx.print();
}
};
int main()
{
Z zzz(23);
zzz.print();
return 0;
}
相关文章推荐
- C++中组合和继承的初始化
- 《读java编程思想》 c++与java的不同(C++进阶 继承 组合 多态)
- 高质量C++/C编程指南 -- 第10章 类的继承与组合
- 类继承和类组合(内嵌类)初始化的不同
- C++中继承与组合的区别详细解析
- C++ 编程思想——继承和组合
- 高质量C++/C编程指南 -- 第10章 类的继承与组合
- C++中的继承和组合区别使用
- c++类多重继承初始化顺序
- C++第13周项目5 - 类的组合与继承
- 读书笔记-Thinking in C++-第14章 继承和组合
- C++第十二周【任务4】类的组合与继承
- 高质量C++/C编程指南 -- 第10章 类的继承与组合
- C++学习笔记(五):继承及类的初始化
- 《C++第十二周实验报告4-1》---类的组合与继承
- 继承和类的组合/内嵌对象初始化
- in c++读后感--理解继承和组合
- java之组合,继承,以及多态初始化的顺序
- C/C++开发语言系列之4---普通继承和虚基类构造函数的初始化顺序1
- C++——三种继承方式与三种访问权限的相互组合