我們可以有一個聲明調用一個構造函數,並且不執行任何操作嗎?聲明調用構造函數,並且什麼也不做 - 爲什麼它不能編譯?
基本上,我重載構造函數,並使用構造函數,而不必將它分配給變量,就像我們通常那樣。 (通常我們不會這樣做,但我可能會看到使用函數時會出現這種情況。)
任何想法?....(我已經聲明瞭複製構造函數是私有的,只是爲了確保這個不是問題的原因。)
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++ **。 –