// TestCppConstructor.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; class A { public : A(int i = 0) { m_i = i; cout << m_i << "A的构造函数" << endl; } ~A() { cout << m_i << "A的析构函数\n"; } void f() { cout << m_i << "A::f()\n"; } private: int m_i; }; class B:public A { public: A m_A; //类型为父类 的 成员变量 B(int i):m_A(i) { cout << "B的构造函数\n"; } ~B() { cout << "B的析构函数\n"; } void f() { cout << "B::f()\n"; } }; int _tmain(int argc, _TCHAR* argv[]) { A *pa = new B(10); //output: // 0A的构造函数 // 10A的构造函数 // B的构造函数 pa->f(); //0A::f() [因为f不为virtual] delete pa; //0A的析构函数 [因为~A不为virtual] getchar(); return 0; }