2015-11-02 50 views
-2

我是C++中面向对象编程的新手,还没有点击过,所以这可能听起来像一个太简单的问题。在我的作业中,我需要:在函数main()中创建一个类的单个实例。 我的教授是什么意思?当我试图寻找答案,他们太具体的问题,我只想要一个笼统的回答,请单实例

+0

的您正在寻找的东西的名称是“单身”。 –

+3

@MarkRansom,我不太确定。这听起来像老师只是想像普通的班级的对象。如果是这样的话,那里的“单身”一词可能会比有帮助的更混乱。 – chris

+0

如果班级是'A',那么它只是'A a''?谢谢@RSahu :) –

回答

6

听上去像是你需要的东西,如:

class A {}; 

int main() { 
    A a; // creates instance of class A 

    return 0; 
} 
0

类是主要部分之一的C++。而且,在创建和扩展类时使用OOP概念也是cpp非常强大的特性。

类包含属性和成员函数。这些都可以是公共的,私人的或受保护的。

类的私有成员只能从同一类的其他成员函数中访问。

受保护类似于私有,但它们也可以由子类访问。

顾名思义,公共成员可以通过类的对象(实例)访问。

如果该类型可以将类可视化为类型和对象作为变量。只是为了理解。

C++中的类创建如下。

class Circle { 
    int radius; // member variable/property 
    public:  // type of function() 
    void set_values (int,int); 
    int area() {return 3.14*radius*radius;} 
}; 

创建类的对象/实例意味着您正在创建类型为class的变量。

Circle c;    // Stack based object 
static Circle t1;  // Static object 

在此,关键字static用于创建该类的单一实例/对象:如下

对象可以简单地被装箱。

欲了解更多信息,只需谷歌它。可能是C++的基础知识是必需的,可以从this,thisthis链接中获得。

0

下面是我的代码:

Singleton.h 
#ifndef __C__Review__Singleton__ 
#define __C__Review__Singleton__ 

#include <iostream> 
class Singleton{ 

private: 

Singleton() { } 
Singleton(const Singleton&); 
Singleton& operator=(const Singleton&); 

static Singleton *instance; 

public: 

static Singleton *getInstance(); 
static void release(); 
}; 
#endif /*   defined(__C__Review__Singleton__) */ 

Singleton.cpp 
#include "Singleton.h" 
Singleton *Singleton::instance = 0; 

Singleton* Singleton::getInstance() 
{ 
if(instance == nullptr) 
    instance = new Singleton(); 
return instance; 
} 

void Singleton::release() 
{ 
    if (instance != NULL) { 
      delete instance; 
      instance = NULL; 
    } 
} 
+1

我不相信_Singleton_实际上是来自OP任务。也没有任何进一步的解释只是抛出代码,并不构成一个很好的答案。顺便说一下,你的单例实现不是很好,并且存在线程安全问题。 –