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