C++ de principiante a competente: modo singleton

La declaración no se puede llamar directamente.

#define _CRT_SECURE_NO_WARNINGS

#include<iostream>

using namespace std;

class ChairMan {
public:
	static ChairMan *getInstance() {
		return singleMan;
	}
private:
	ChairMan() { };
	ChairMan(const ChairMan &){};
	static ChairMan *singleMan;
};
ChairMan * ChairMan::singleMan = new ChairMan;
void test01(){
	/* 无法调用函数
	ChairMan c1;
	ChairMan c2;
	ChairMan *c3 = new ChairMan;*/

	
}
int main() {
	test01();
//	system("pause");
	return EXIT_SUCCESS;
}

Adquisición en modo singleton

#define _CRT_SECURE_NO_WARNINGS

#include<iostream>

using namespace std;

class ChairMan {
public:
	static ChairMan *getInstance() {
		return singleMan;
	}
private:
	ChairMan() { };
	ChairMan(const ChairMan &){};
	static ChairMan *singleMan;
};
ChairMan * ChairMan::singleMan = new ChairMan;
void test01(){
	/* 无法调用函数
	ChairMan c1;
	ChairMan c2;
	ChairMan *c3 = new ChairMan;
	ChairMan *c1 = ChairMan::singleMan;*/
	ChairMan *c1 = ChairMan::getInstance();
	ChairMan *c2 = ChairMan::getInstance();
	//ChairMan *c3 = new ChairMan(*c1);
	if(c1==c2){
		cout<<"c1=c2"<<endl;
	} else{
		cout<<"c1!=c2"<<endl;
	}


}
int main() {
	test01();
//	system("pause");
	return EXIT_SUCCESS;
}

Insertar descripción de la imagen aquí

Caja de impresora

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Printer{
public:
	int m_Count{0};
	static Printer* getInstance(){
		return printer;
	}
	void printText(string text){
			m_Count++;
			cout<<"m_Count,打印机被调用"<<endl;
	};
private:
	static Printer *printer;
	Printer(){
		m_Count=0;
	}
	Printer(const Printer&p){};
};
Printer *Printer::printer = new Printer;
void test01(){
	Printer *p1 = Printer::getInstance();
	p1->printText("入职证明");
	p1->printText("离职证明");
	p1->printText("加薪证明");
	p1->printText("旅游证明");
	cout<<"打印机使用次数"<<p1->m_Count<<endl;

	Printer *p2 = Printer::getInstance();
	p1->printText("还是入职证明");
	cout<<"打印机使用次数"<<p1->m_Count<<endl;



}
int main() {
	test01();
//	system("pause");
	return EXIT_SUCCESS;
}

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_42917352/article/details/127354822
Recomendado
Clasificación