1:父类和子类中都有构造函数和析构函数,那么子类对象在创建时是父类先进行构造还是子类先进行构造?同样,在子类对象释放时,是父类先进行释放,还是子类先进行释放?这都是有先后顺序的。答案是当从父类派生一个子类并声明一个子类的对象时,它将先调用父类的构造函数,然后调用当前类的构造函数来创建对象;在释放之类对象时,先调用的是当前类的析构函数,然后是父类的析构函数。
2:实例代码如下:
// 8.2.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; class CEmployee //定义CEmployee类 { public: int m_ID; //定义数据成员 char m_Name[128]; //定义数据成员 char m_Depart[128]; //定义数据成员 CEmployee() //定义构造函数 { cout << "CEmployee类构造函数被调用"<< endl; //输出信息 } ~CEmployee() //析构函数 { cout << "CEmployee类析构函数被调用"<< endl; //输出信息 } }; class COperator :public CEmployee //从CEmployee类派生一个子类 { public: char m_Password[128]; //定义数据成员 COperator() //定义构造函数 { strcpy(m_Name,"MR"); //设置数据成员 cout << "COperator类构造函数被调用"<< endl; //输出信息 } ~COperator() //析构函数 { cout << "COperator类析构函数被调用"<< endl; //输出信息 } }; int main(int argc, char* argv[]) //主函数 { COperator optr; //定义一个COperator对象 return 0; }