C++ 单例

2021/12/27 17:07:45

本文主要是介绍C++ 单例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

        众所周知,网上一直流传着,不知道叫什么的单例,乱七八糟写啥的都有。不是报错就是内存泄露的,没一点实用的。全是半瓶水晃荡,瞎几把写。 那么今天就写一个。

        单例就是始终保持一个实例。 在C++ 中实现,我们就只要注意两点。哪里两点? 拷贝构造,拷贝复制。这两点。 C++ 默认类中,会包含六个构造函数。我们只要把上面这两个禁用掉就没问题了。 怎么禁用?用新特性(=delete)。  有人说,“啊,我们用的什么类模板,有new” 别跟我扯什么,这哪的。今天就用这个写了。

class Singleton
{
public:
	static Singleton& GetInstance()
	{
		static Singleton instance;

		return instance;

	}
	Singleton(const Singleton&) = delete; //这个叫拷贝构造
	Singleton& operator =(const Singleton&) = delete;//拷贝赋值
	~Singleton() {};

private:
	Singleton() {}; //默认构造函数
};


class A      //有些人可能会这么写,这是不是也可以。
{
public:

	static A& GetInstance();

private:
	A() {};
	A(const A& rts);
};

A& A::GetInstance()
{
	static A a;
	return a;
}



int main()
{
	Singleton& sing = Singleton::GetInstance(); //得到一个实例

	A &a = A::GetInstance();
}

这是不是完全体现了C++ Class类应用的成果。



这篇关于C++ 单例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程