限制构造函数的功能

时间:2012-11-29 05:39:21

标签: c++ visual-studio-2010 constructor

请查看以下代码

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类型的对象是不可能的。我该怎么做?请帮忙!

1 个答案:

答案 0 :(得分:1)

您可以将默认构造函数设为私有。

作为一个示例,通常,当我们实现单例类时,我们将默认构造函数设为私有,并提供静态公共“实例”方法。