C++中组合和继承的初始化
2015-08-25 13:45
330 查看
在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 )的定义
具体举例如下:
在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; }
相关文章推荐
- C语言学习中一些函数的记录
- Visual Studio 2010建模学习(十二) - C/C++代码的可视化
- 逐步理解KMP算法C++完整实现
- 浅谈C++三层架构
- C++常用术语及其英文翻译的含义和简单用途总结(八)
- C++计算 MD5值 (数字签名)
- C++成员函数做为线程函数
- C++函数模板及实现原理
- C++中#if #ifdef及其#define整理
- c++中常用的计算程序运行时间的方法
- C++ MFC 使用低级键盘钩子 获取键值 (WH_KEYBOARD_LL)
- c语言详解sizeof
- C++ 函数指针的定义方法及使用
- 各种各样_cast
- C++ 定时发送文件到服务器
- 专业的C/C++头文件写法 (
- 详解C语言中strpbrk()函数的用法
- C/C++的输出
- Duanxx的C++得知:计算位数
- C++ 指针初识