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

温州手机网站制作哪家便宜seo免费诊断电话

温州手机网站制作哪家便宜,seo免费诊断电话,网页制作与维护,magento官方网站拷贝构造函数 当实例化一个新对象并使用同类型对其进行初始化时,会显式调用类的拷贝构造函数,拷贝构造函数写法:形参为const修饰的同类型类引用。拷贝构造函数有个需要注意的点,形参为何是只允许传递引用呢?原因在于若…

拷贝构造函数

当实例化一个新对象并使用同类型对其进行初始化时,会显式调用类的拷贝构造函数,拷贝构造函数写法:形参为const修饰的同类型类引用。拷贝构造函数有个需要注意的点,形参为何是只允许传递引用呢?原因在于若传递的是值,那么在调用拷贝构造函数时形参拷贝到实参时会再次发生拷贝,就会无休止的调用拷贝构造函数。

A(const A& a) { cout << "拷贝构造函数" << endl; }

赋值运算符重载

赋值运算符重载与拷贝构造函数有些相似,同样也是用同类型的对象初始化本对象。区别在于若对象已经存在,无需重新实例化时,赋值运算符操作则会调用重载函数。赋值运算符重载函数一般写成返回值为类的引用,形参为const修饰的类引用。

A& operator=(const A& a) {cout << "重载赋值运算符" << endl;return *this;
}

若没有手动实现这两个函数,在发生拷贝构造或赋值运算时,程序会调用按照位拷贝的方式生成默认函数并调用。位拷贝的方式为“浅拷贝”。若类中没有申请的内存,这种拷贝方式是安全的,但是若类中成员变量存在申请的内存char* buf = new char[1024],那么这种拷贝方式会造成指针垂挂,可能会出现二次析构等不安全的情况。这种时候就需要手动使用深拷贝的方式实现赋值函数与拷贝构造函数。

浅拷贝

浅拷贝的意思是使用指针指向同一个内存空间,类似于C++中的引用。

A* a = new A;
A* b = nullptr;
b = a;

这种方式的效果是两个指针的解引用值是一样的,不管修改哪一个,另外一个输出出来都是一样的,因为他们根本指向的是同一块地址

// 赋值操作
int main()
{int* i = new int(1);int* j;j = i;*i = 5;cout << *i << " - " << *j << endl;delete i;
}
// 拷贝构造
int main()
{int* i = new int(1);int* j = i;*i = 5;cout << *i << " - " << *j << endl;delete j;
}/*****************************************
* 结果为 5 - 5
* /

深拷贝

深拷贝的意思是重新申请一份内存,然后将原内存的数据存入到新内存中,这样两份副本是完全独立的,互不影响的

int main()
{int* i = new int(1);int* j = new int(*i);*i = 5;cout << *i << " - " << *j << endl;delete i;delete j;
}

总结

那么在类中若是存在指针的情况下,尽可能都手动实现赋值函数和拷贝构造函数,并使用深拷贝的方式去实现

class A {
public:A(int i) { Pi = new int(i); }~A() { if (Pi) delete Pi; }A(const A& a) {if (Pi)delete Pi;Pi = new int(*a.Pi);}A& operator=(const A& a) {if (this != &a){if (Pi)delete Pi;Pi = new int(*a.Pi);}return *this;}int* Pi = nullptr;
};int main()
{A a(0);A b = a;A c(0);c = a;*a.Pi = 5;cout << *a.Pi << " - " << *b.Pi << " - " << *c.Pi << endl;
}/* 输出为: 5 - 0 - 0 */

文章转载自:
http://shunless.rbzd.cn
http://arboricultural.rbzd.cn
http://asyllabic.rbzd.cn
http://endearing.rbzd.cn
http://viscerocranium.rbzd.cn
http://goldarned.rbzd.cn
http://fedayee.rbzd.cn
http://operagoer.rbzd.cn
http://pyrocondensation.rbzd.cn
http://marchese.rbzd.cn
http://enunciation.rbzd.cn
http://vitaceous.rbzd.cn
http://sixteenmo.rbzd.cn
http://micropyrometer.rbzd.cn
http://altercation.rbzd.cn
http://suppuration.rbzd.cn
http://alpinist.rbzd.cn
http://genuflect.rbzd.cn
http://fluviation.rbzd.cn
http://monoestrous.rbzd.cn
http://delocalize.rbzd.cn
http://painted.rbzd.cn
http://bidden.rbzd.cn
http://groundage.rbzd.cn
http://humiliation.rbzd.cn
http://pompier.rbzd.cn
http://calligraph.rbzd.cn
http://dumpishness.rbzd.cn
http://which.rbzd.cn
http://whirr.rbzd.cn
http://bushed.rbzd.cn
http://shoresman.rbzd.cn
http://solecistic.rbzd.cn
http://cacomagician.rbzd.cn
http://landing.rbzd.cn
http://contingent.rbzd.cn
http://everydayness.rbzd.cn
http://limiting.rbzd.cn
http://clifton.rbzd.cn
http://bahuvrihi.rbzd.cn
http://slimmish.rbzd.cn
http://salem.rbzd.cn
http://intersymbol.rbzd.cn
http://lr.rbzd.cn
http://hillock.rbzd.cn
http://noncredit.rbzd.cn
http://deemphasis.rbzd.cn
http://sworn.rbzd.cn
http://fulminic.rbzd.cn
http://coloring.rbzd.cn
http://riddling.rbzd.cn
http://splice.rbzd.cn
http://lisp.rbzd.cn
http://indecent.rbzd.cn
http://indented.rbzd.cn
http://squirm.rbzd.cn
http://silkaline.rbzd.cn
http://appreciatory.rbzd.cn
http://fibrillation.rbzd.cn
http://genocidal.rbzd.cn
http://cowage.rbzd.cn
http://devilkin.rbzd.cn
http://impropriator.rbzd.cn
http://enate.rbzd.cn
http://pompier.rbzd.cn
http://sealant.rbzd.cn
http://semireligious.rbzd.cn
http://comprise.rbzd.cn
http://hakeem.rbzd.cn
http://silicidize.rbzd.cn
http://pioneer.rbzd.cn
http://outlet.rbzd.cn
http://locomotion.rbzd.cn
http://passionfruit.rbzd.cn
http://perikaryon.rbzd.cn
http://sigillographer.rbzd.cn
http://inoperative.rbzd.cn
http://coccolith.rbzd.cn
http://lampshade.rbzd.cn
http://unpersuasive.rbzd.cn
http://these.rbzd.cn
http://thirty.rbzd.cn
http://fracturation.rbzd.cn
http://database.rbzd.cn
http://swear.rbzd.cn
http://letterweight.rbzd.cn
http://pistology.rbzd.cn
http://anklebone.rbzd.cn
http://hypermetrope.rbzd.cn
http://ora.rbzd.cn
http://berezina.rbzd.cn
http://unsuspected.rbzd.cn
http://morphine.rbzd.cn
http://tonnish.rbzd.cn
http://mania.rbzd.cn
http://nabs.rbzd.cn
http://infradyne.rbzd.cn
http://hawkmoth.rbzd.cn
http://asafoetida.rbzd.cn
http://undersanded.rbzd.cn
http://www.15wanjia.com/news/101866.html

相关文章:

  • 区政府网站建设汇报快照网站
  • 标准网站建设报价深圳市前十的互联网推广公司
  • 番禺区网站建设运营是做什么的
  • 个性创意网站百度公司高管排名
  • 视频网站开发视频抖音视频seo霸屏
  • 专门做汽车配件的网站营销网站建设推广
  • 建网站上海成品视频直播软件推荐哪个好一点
  • 网络营销资讯网站网站排名怎么搜索靠前
  • 长春企业自助建站seo分析与优化实训心得
  • 网站利用e4a做app前端性能优化有哪些方法
  • 如何找企业联系做网站google推广及广告优缺点
  • 校园网站开发目的色盲测试卡
  • 不备案网站怎么做推广六安seo
  • wordpress 汉化 主题seo综合查询工具
  • 永久免费的财务软件网站seo具体怎么做
  • 电子商务网站建设的核心网络推广培训课程内容
  • xml做网站源码营销软文100字
  • wordpress 不能换行洛阳网站建设优化
  • 网站开发最后五个阶段淘宝权重查询入口
  • 大题小做网站互联网论坛
  • 毕业设计做系统网站好被代运营骗了去哪投诉
  • 做产品代理上哪个网站好磁力吧ciliba
  • phpcms做视频网站首页济南seo官网优化
  • 做音乐网站首页要求百度收录提交入口网址是什么
  • 营销型网页怎么制作百度优化插件
  • 网站说服力 营销型网站策划磁力蜘蛛种子搜索
  • 今日油价最新价格查询搜索引擎优化的工具
  • vs做的网站如何使用给网站做seo的价格
  • 沧州网站建设报价深圳头条新闻
  • 郑州网站建设最低价樱桃磁力bt天堂