分为三种情况
class animal
{
public:
animal(){
cout >> "animal";
};
};
class fish :public animal
{
public:
fish() :animal(){cout >> "fish";};
};
这种使用情况,一般在.h文件中出现。第一个冒号表示fish是animal的子类。fish继承了animal类
第二个冒号表示fish调用animal的构造函数。同时。在创建对象fish时,会先输出animal后再输出fish
//第二种情况
//在构造函数的位置加:
class animal
{
public:
animal()
{
cout << "animal" << endl;
}
};
class fish :public animal
{
public:
fish();
};
fish::fish() :animal()
{
cout << "fish";
}
其实也是一样的,都是先执行了animal的构造函数以后,在执行fish的构造函数
以上两种方法的前提均是fish是animal的子类
第三种用法是对类成员进行初始化
以下两段代码是等价的
class rectangle //头文件中类定义
{
public:
rectangle( int pointX, int pointY, int Width, int Length );
private:
CPoint m_point;
int m_Width;
int m_Length;
};
rectangle::rectangle(int pointX, int pointY, int Width, int Length) : m_point(pointX,pointY),m_Width(Width),m_Length(Length)//源文件中构造函数实现
{
todo......
}
rectangle::rectangle(int pointX, int pointY, int Width, int Length)//源文件中构造函数实现
{
m_point.X = pointX;
m_point.Y = pointY;
m_Width = Width;
m_Length = Length;
todo......
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)