// 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;
}