小记:运行环境:win xp vs2008
#include <iostream> #include <string> using std::cout; using std::cin; using std::endl; using std::istream; using std::ostream; class y { private: int a; public: y(){ cout << "y()" << endl;} y(int n){cout << "y(int n)" << endl; a = n;} int GetA(){return a;} }; int _tmain(int argc, _TCHAR* argv[]) { using namespace std; y *py = new y(); // 调用y(),不论 y(int n) 一般构造函数是否存在 cout << py->GetA() << endl; // 任意值 y *py2 = new y; // 调用y(),不论 y(int n) 一般构造函数是否存在 cout << py2->GetA() << endl; // 任意值 y *py3 = new y(222); // 调用 y(int n) cout << py3->GetA() << endl; // 222 /* // 结果同上,即直接初始化和采用赋值方式调用构造相同,且都不初始化成员变量 y *py; py = new y(); cout << py->GetA() << endl; y *py2; py2 = new y; cout << py2->GetA() << endl; y *py3; py3 = new y(222); cout << py3->GetA() << endl; */ system("pasue"); return 0; }