环境
VS2017 + C++14 语言的设置
class CA
{
public:
CA() { std::cout << "Class A" << std::endl; }; //无参构造函数
~CA() { std::cout << "Class A die..." << std::endl; };
};
class CB
{
public:
CB(void* pVOID = NULL) { std::cout << "Class B" << std::endl; }; //构造需要传递指向 void 类型的指针,默认为 NULL
~CB() { std::cout << "Class B die..." << std::endl; };
};
class CC
{
public:
CC(int* pLength = NULL) { std::cout << "Class C" << std::endl; } //构造需要传递指向 int 类型的指针,默认为 NULL
~CC() { std::cout << "Class C die..." << std::endl; };
};
void Test(void)
{
CA a0;
//CA a1 = new CA(); //缺少合适构造函数,使 CA* 转换为 CA
CA* a2 = new CA();
CB b0;
CB b1 = new CB(); //为什么这里就可以这么使用呢?并且从运行结果上看执行了两次 CB 的构造函数?
CB* b2 = new CB();
CC c0;
//CC c1 = new CC(); //缺少合适构造函数,使 CC*转换为 CC
CC* c2 = new CC();
delete a2;
//delete b1; //不是 CB*类型
delete b2;
delete c2;
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.