c++ - 限制构造函数的功能

标签 c++ visual-studio-2010 constructor

<分区>

请看下面的代码

游戏对象.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 类型的对象。我该怎么做?请帮忙!

最佳答案

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

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

关于c++ - 限制构造函数的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13619538/

相关文章:

c++ - 如果用户不小心给出了错误的数据类型,cin 如何工作?

javascript - 类级别属性

c++ - 将相同的参数转发给 C++ 中的可变元组构造函数

c# - 错误 : Could not load file or assembly or one of it's dependencies

c++ - 无法调试完整代码以创建窗口

c++ - 无法从类中访问全局交换函数

c++ - 关于 delete() 类实例及其静态方法/变量的问题

c++ - 如何让指针的深层拷贝将内部结构发送到内核?

数组的 C++ 内存分配

c# - 有没有办法在 "mouse over"语句中使用 "if"条件来查看 VS2010 中的真假?