显式调用构造函数的小测试
代码:
#include <iostream>
using namespace std;
class A {
public:
A() {cout << "A()" << endl;}
~A() {cout << "~A()" << endl;}
};
int main() {
A a;
a.A::A();
return 0;
}
Linux平台
版本:
dc2-user@10-254-0-30:~/mycode$ g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609
结果:
g++ tmp.cpp -o a.out -std=c++11
tmp.cpp: In function ‘int main()’:
tmp.cpp:12:10: error: cannot call constructor ‘A::A’ directly
a.A::A();
^
windows平台
版本:
vs2010、vs2017
结果:
编译运行正常