继承类中的子对象和基类对象的初始…
来源:互联网 发布:淘宝店铺主页长条图片 编辑:程序博客网 时间:2024/05/17 07:06
考察下面的程序:
class point1
{
public:
point1();
point1(int i);
virtual ~point1();
private:
int x;
};
{
public:
private:
};
point1::point1()
{
x=1;
cout<<"point1's default constructor called!\n";
}
point1::point1(int i)
{
x=i;
cout<<"point1's constructor called!\n";
}
point1::~point1()
{
{
}
point1::point1(int i)
{
}
point1::~point1()
{
}
class point2 : public point1
{
public:
point2();
point2(int i,int j,int k);
virtual ~point2();
point1 p;
};
public:
};
point2::point2()
{
cout<<"point2's defaule constructor called\n";
}
point2::point2(int i,int j,int k)
{
cout<<"point2's constructor called\n";
}
{
}
point2::point2(int i,int j,int k)
{
}
point2::~point2()
{
{
}
//主函数
void main()
{
point2 pp;
point2 pp1(1,2,3);
}
{
}
运行结果
point1's default constructor called!
point1's default constructor called!
point2's defaule constructor called
point1's default constructor called!
point1's default constructor called!
point2's constructor called
point1's default constructor called!
point2's defaule constructor called
point1's default constructor called!
point1's default constructor called!
point2's constructor called
如果函数
point2::point2(int i,int j,int k)
{
cout<<"point2's constructor called\n";
}
{
}
改为:
point2::point2(int i,int j,int k):p(j)
{
cout<<"point2's constructor called\n";
}
{
}
运行结果为:
point1's default constructor called!
point1's default constructor called!
point2's defaule constructor called
point1's default constructor called!
point1's constructor called!
point2's constructor called
point1's default constructor called!
point2's defaule constructor called
point1's default constructor called!
point1's
point2's constructor called
结论:
(1)派生类中的基类子对象和子对象必须初始化,初始化在派生类的构造函数的初始化列表中,如果初始化列表中没有进行初始化,则调用缺省的构造函数进行初始化。
(2)派生类构造函数的调用顺序:
0 0
- 继承类中的子对象和基类对象的初始…
- 继承类中的子对象和基类对象的初始化
- c++——继承类中的子对象和基类对象的初始化
- js中的类,对象和继承
- 对象和类继承
- 类和对象 -----继承
- 类和对象:继承
- OC之初始类和对象
- Objective-C_初始类和对象
- C++类和对象的继承
- 类的继承和对象引用
- 私有继承中的派生类对象与基类对象间的转换
- 虚拟继承和多重继承中类对象的大小
- 类继承和对象组合
- javascript类对象和继承
- 类和对象与继承
- c++的子对象,继承和多态
- 对象的初始状态
- this指针
- 数组和指针(2)
- 关于常类型
- 堆对象
- 关于析构函数和拷贝初始化函数
- 继承类中的子对象和基类对象的初始…
- 最近的一些感想,关于写博客
- 引用作为函数返回值
- CentOS下MYSQL数据库的安装
- Flex中Des加密解密
- 赋值兼容规则及虚函数
- IDispatch接口的作用
- 《C++ Primer》第4版不适合初学者…
- 在VC中添加新的源文件出现错误“在…