当前位置: 首页 > 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/233112.html

相关文章:

  • 武汉S001网站建设哪家好30条新闻摘抄
  • 化妆品网站主页设计网站排名查询
  • 网站无法访问seo软件安卓版
  • 网站建设和推广需要多少费用关键词优化推广
  • 外贸网站用什么字体seo优化中以下说法正确的是
  • 怎么申请建立一个公司网站正规接单赚佣金的平台
  • 做哪些网站比较赚钱方法有哪些seo诊断方案
  • 重庆龙头寺找做墩子师傅网站好的seo网站
  • 六兄弟做网站百度网址导航
  • 专业网站设计公司有哪些今日头条新闻最全新消息
  • 网站怎么做会让神马搜索到网站seo综合查询
  • 云南网站建设公司排行平台运营推广方案
  • 广东网广东网站建设护肤品软文推广
  • 公司品牌网站建设武汉seo结算
  • 自己做网站需要学什么软件下载百度权重工具
  • 做类似美团的网站得多少钱百度教育会员
  • 购物网站设计图如何制作网站免费建站
  • 招远做网站价格百度一下电脑版网页
  • 梨园网站建设电商推广和网络推广的策略
  • 有免费的微网站是什么百度推广客户端下载安装
  • 潜江资讯网招聘seo站内优化包括
  • 响应式网页制作宁波百度seo点击软件
  • 计算机网络技术毕业论文广州seo网站
  • webapp 做视频网站百度热搜关键词
  • 大连html5网站建设报价哪有网页设计公司
  • 杭州工作招聘网石家庄seo优化公司
  • 网站建设郑州宁波seo外包公司
  • 网站建设公司net2006保定网站推广公司
  • 兰州做网站一咨询兰州做网站公司新站整站优化
  • 中国能源建设股份有限公司新网站百度竞价培训