当前位置: 首页 > wzjs >正文

安徽伟诚建设工程有限公司网站百度竞价运营

安徽伟诚建设工程有限公司网站,百度竞价运营,做网站图结构,自建网站做外贸的流程拷贝构造函数 简单的说就是——用一个对象构造另外一个对象 class Myclass {public:int d0;Myclass(int d_){d d_}; //常用的构造函数Myclass(Myclass c) //拷贝构造函数{d c.d;} }; //对比 class Myclass {public:int d0;Myclass(int d_){d d_}; //常用的构造函数Myclass…

拷贝构造函数

简单的说就是——用一个对象构造另外一个对象

class Myclass
{public:int d=0;Myclass(int d_){d = d_};	//常用的构造函数Myclass(Myclass c) //拷贝构造函数{d = c.d;}
};
//对比
class Myclass
{public:int d=0;Myclass(int d_){d = d_};	//常用的构造函数Myclass(const Myclass& c) //高效安全的拷贝构造函数{d = c.d;}
};
//调用
int main()
{Myclass A(3);Myclass B(A);
}

简单的说一下,main中展示了两种构造对象的方式:
一种是用了一般构造函数,构造了对象A
一种是用了拷贝构造函数,利用A构造了对象B

这里注意一下,对比 展示了拷贝构造函数的写法,后者传入参数用了常引用,避免了一次形参到实参的拷贝,同时const保护了A在函数内不被意外修改。

左值右值(会转换)

左值:c++中可以取地址的,有名字的。
右值: 不可取地址,无名字

左值k变右值:std::move(k);

移动构造函数

先给一个简单的例子

class A
{public:int* a;A(){a=new int(2);}//普通的构造函数A(A&& a_out){a = a_out.a;a_out.a =nullptr;}//移动构造A(const A& c_){a = c_.a;c_.a = nullptr;};//拷贝构造~A(){if(a!=nullptr)delete a;}//析构函数
};
int main()
{A k = A();A ak = k;		A ck = std::move(ak);
}

这里A&& 类型我们称为右值引用。

A k = A();显然 A() 先调用了普通的构造函数,然而由于是个右值(因为没有变量)。用来初始化k对象,这里就调用了移动构造

我们利用左值k来初始化ak对象,显然就是拷贝构造。

最后虽然ak是左值,但是move运算后得到右值,所以也是移动构造。

单例模式——懒汉模式(只有在调用的时候才初始化)

class Singletem
{public:static Singletem& getitem(){static Singletem it;return it;}	Singletem(const Singletem & itt) = delete;//禁用拷贝构造;Singletem(Singletem && itt) = delete;//禁用移动构造Singletem& operator=(const Singletem & itt) = delete; //禁用拷贝赋值运算符//例如 Singletem A; Singletem B;// A = B;Singletem& operator=(Sinletem&& itt) = delete;//禁用移动赋值运算符  //例如 Singletem A;// A = Singletem();private:Singletem();
};
或者写作
class noncopyable
{
protected:noncopyable() = default;~noncopyable() = default;noncopyable(const noncopyable & itt) = delete;//禁用拷贝构造;noncopyable(noncopyable && itt) = delete;//禁用移动构造noncopyable& operator=(const noncopyable & itt) = delete; //禁用拷贝赋值运算符noncopyable& operator=(noncopyable&& itt) = delete;//禁用移动赋值运算符  
}
class Singletem:noncopyable
{public:static Singletem& getitem(){static Singletem it;return it;}	private:Singletem();
};

这里有一个小细节,operator返回的是引用,这是为了链式法则,例如a=b=2;

单例模式——饿汉模式(未经调用就先初始化)

class Singletem:noncopyable
{public:static Singletem& getitem(){static Singletem it;return it;}	private:static Singletem tem;Singletem();
};
Singletem Singletem::tem;//实例初始化
int main()
{
Singletem s1 = Singletem::getitem();
Singletem s2 = Singletem::getitem();
bool c= &s1==&s2;
return 1;
}
http://www.dtcms.com/wzjs/70535.html

相关文章:

  • 一台服务器做两个网站吗百度应用市场下载安装
  • 重庆做网站公司排名百度大盘指数
  • wordpress本地网站打开慢专业优化网站排名
  • 做外贸网站空间多少g怎么做推广赚钱
  • 大连网站建设设计公司外贸快车
  • 个人网站备注模板微信指数是搜索量吗
  • 重庆网站建设流程网络营销顾问是做什么的
  • 浅绿色网站模板百度推广下载安装
  • 17网站一起做网店打不开网站关键词排名优化系统
  • 什么网站可以做美食免费seo快速排名工具
  • 做社交网站的预算网站怎么推广出去
  • 网站编辑怎么样推广效果最好的平台
  • 海南海口网站开发公司seo教程seo教程
  • 邢台市应急管理局上海谷歌seo推广公司
  • wordpress怎样禁止采集信息流优化师是什么
  • 广州公司注册地址迁址网上办理seo网站查询
  • 一个空间多个php网站2020年十大关键词
  • 新乡专业做网站搜索引擎优化的主要手段
  • 温州网站推广站建设河南网站推广优化
  • 电子商务网站建设类论文怎样优化网站排名
  • 大连做网站 智域免费网络推广软件有哪些
  • 网页设计基础代码网站线上推广的渠道有哪些
  • 郑州做企业网站的专业软文发稿平台
  • 在线做数据图的网站广州网站建设公司
  • 靖江市建设局网站站长工具百度百科
  • 珠海微网站好视通视频会议app下载安装
  • 台州网站建设服务百度app免费下载安装最新版
  • 如何做网站访问量的统计软文案例200字
  • 网站如何做的有特色网络推广的方法
  • 网站建设总结 优帮云怎么做品牌推广和宣传