//构造函数的不同调用情况
#include<iostream>
class myclass
{
public:
int num;
public:
myclass():num(5)
{
std::cout << "class create" << std::endl;
}
myclass(int data)
{
std::cout << "class create by data" <<std::endl;
num = data;
}
~myclass()
{
std::cout << "class delete" << std::endl;
}
};
void run()
{
std::cout << "myclass myclass1(10): ";
myclass myclass1(10);
std::cout << "myclass myclass2=101: ";
myclass myclass2 = 101;
std::cout << "myclass *p1=new myclass(102): ";
myclass *p1 = new myclass(102);
std::cout << "myclass *p2(new myclass(102)): ";
myclass *p2(new myclass(102));
delete p1;
p1 = NULL;
delete p2;
p2 = NULL;
std::cout << "myclass *p3(new myclass()): ";
myclass *p3(new myclass());
std::cout << "myclass *p1=new myclass(): ";
myclass *p4 = new myclass();
delete p3;
p3 = NULL;
delete p4;
p4 = NULL;
std::cout << myclass1.num << std::endl;
}
void main()
{
run();
system("pause");
}
输出: