安新seo优化排名网站h5制作官网
安新seo优化排名网站,h5制作官网,郴州网签备案查询系统,做网页大概需要多少钱目录 一.设计一个类#xff0c;不能被拷贝
二.设计一个类只能在堆上创建对象
三.设计一个类只能在栈上创建对象 四. 请设计一个类#xff0c;不能被继承
五.请设计一个类#xff0c;只能创建一个对象(单例模式) 1.单例模式#xff1a; 2. 饿汉模式 一.设计一个类#x… 目录 一.设计一个类不能被拷贝
二.设计一个类只能在堆上创建对象
三.设计一个类只能在栈上创建对象 四. 请设计一个类不能被继承
五.请设计一个类只能创建一个对象(单例模式) 1.单例模式 2. 饿汉模式 一.设计一个类不能被拷贝 只需要让该类不能在类外调用该类的拷贝构造函数以及赋值重载函数即可。 C98 class CopyBan
{// ...private:CopyBan(const CopyBan);CopyBan operator(const CopyBan);//...
}; C11
class CopyBan
{// ...CopyBan(const CopyBan)delete;CopyBan operator(const CopyBan)delete;//...
}; 二.设计一个类只能在堆上创建对象 实现方式 1. 将类的构造函数私有拷贝构造声明成私有。防止别人调用拷贝在栈上生成对象。 2. 提供一个静态的成员函数在该静态成员函数中完成堆对象的创建 class HeapOnly
{
public: static HeapOnly* CreateObject() { return new HeapOnly; }
private: HeapOnly() {}// C98// 1.只声明,不实现。因为实现可能会很麻烦而你本身不需要// 2.声明成私有HeapOnly(const HeapOnly)// or// C11 HeapOnly(const HeapOnly) delete;
}; 三.设计一个类只能在栈上创建对象 class StackOnly
{
public:static StackOnly CreateObj(){return StackOnly();}// 禁掉operator new可以把下面用new 调用拷贝构造申请对象给禁掉// StackOnly obj StackOnly::CreateObj();// StackOnly* ptr3 new StackOnly(obj);void* operator new(size_t size) delete;void operator delete(void* p) delete;
private:StackOnly() :_a(0){}
private:int _a;
}; 也可以同第二个中的通过静态方法返回对象来实现从栈上创建对象。 四. 请设计一个类不能被继承 // C98中构造函数私有化派生类中调不到基类的构造函数。则无法继承
class NonInherit
{
public:static NonInherit GetInstance(){return NonInherit();}
private:NonInherit(){}
};//C11
class A final
{// ....
};五.请设计一个类只能创建一个对象(单例模式) 1.单例模式 一个类只能创建一个对象即单例模式该模式可以保证系统中该类只有一个实例并提供一个 访问它的全局访问点该实例被所有程序模块共享 。比如在某个服务器程序中该服务器的配置 信息存放在一个文件中这些配置数据由一个单例对象统一读取然后服务进程中的其他对象再 通过这个单例对象获取这些配置信息这种方式简化了在复杂环境下的配置管理。 单例模式有两种实现模式 2. 饿汉模式 就是说不管你将来用不用程序启动时就创建一个唯一的实例对象。 // 饿汉模式
// 优点简单
// 缺点可能会导致进程启动慢且如果有多个单例类对象实例启动顺序不确定。class Singleton{public:static Singleton* GetInstance(){return m_instance;}
private:// 构造函数私有Singleton(){};// C98 防拷贝Singleton(Singleton const); Singleton operator(Singleton const); // or// C11Singleton(Singleton const) delete; Singleton operator(Singleton const) delete; static Singleton m_instance;};Singleton Singleton::m_instance; // 在程序入口之前就完成单例对象的初始化
} 3.懒汉模式 用来解决饿汉模式中带来的缺点。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87834.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!