单一实例

时间:2015-11-02 03:57:35

标签: c++ oop

我是C ++中面向对象编程的新手,嗯,它还没有点击我,所以这听起来像是一个太容易的问题。在我的作业中,我需要:在函数main()中创建一个类的单个实例。 我的教授对此意味着什么?当我尝试寻找答案时,他们对问题太具体了,我只想要一般答案

3 个答案:

答案 0 :(得分:6)

声音就像你只需要:

class A {};

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

    return 0;
}

答案 1 :(得分: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;}
};

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

可以简单地按照以下方式对象:

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

此处,关键字static用于创建该类的单例实例/对象。

有关详细信息,请点击谷歌。可能是C ++的基础知识,可以从thisthisthis链接获得。

答案 2 :(得分: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;  
    }  
}