2012-11-29 110 views
0

請看看下面的代碼限制構造函數

GameObject.cpp

#include "GameObject.h" 


GameObject::GameObject(void) 
{ 
    id = 0; 
} 

GameObject::GameObject(int i) 
{ 
    id = i; 
} 


GameObject::~GameObject(void) 
{ 
} 

GameObject.h

#pragma once 
class GameObject 
{ 
public: 
    GameObject(void); 
    GameObject(int); 
    ~GameObject(void); 


    int id; 
}; 

Main.cpp的

#include <iostream> 
#include "GameObject.h" 

using namespace std; 

int main() 
{ 
    GameObject obj1; 
    cout << obj1.id << endl; 

    GameObject obj2(45); 
    cout << obj2.id << endl;; 

    system("pause"); 
    return 0; 
} 

現在,我想確保使用默認構造函數定義gameObject類型的對象是不可能的。我該怎麼做?請幫忙!

+2

不要定義默認的構造函數嗎? – jogojapan

+1

或使默認構造函數爲私有? – billz

+2

或者刪除它?我完全沒有定義,但是用它做出某些事情的錯誤信息會更好一些。 – chris

回答

1

您可以使默認構造函數爲私有。

作爲一個示例,通常,當我們實現一個單例類時,我們使默認構造函數爲private,並提供一個靜態公共「實例」方法。

+0

謝謝埃文。我非常感謝你的回覆。 +1 –

+0

如果'int'轉換仍然可行,我認爲它不會被用作單例。 – chris