我们可以有一个声明调用一个构造函数,并且不执行任何操作吗?声明调用构造函数,并且什么也不做 - 为什么它不能编译?
基本上,我重载构造函数,并使用构造函数,而不必将它分配给变量,就像我们通常那样。 (通常我们不会这样做,但我可能会看到使用函数时会出现这种情况。)
任何想法?....(我已经声明了复制构造函数是私有的,只是为了确保这个不是问题的原因。)
class myClass
{
public:
myClass (int n, int x) { }
myClass (int n) { }
private:
myClass (const myClass & t){} // copy constructor is private.....
};
int main()
{
int r = 5;
myClass A(r); // OK (as per usual)
myClass (r, r); // OK
myClass (5); // OK
myClass (r); // not OK : error C2371: 'r' : redefinition; different basic types
// myClass B = myClass (r); // this would not work as copy constructor
// has been declared as private
return 0;
}
'无效的主要()'是**非法的C++ **。 –