c – 使用复制构造函数有什么好处?
发布时间:2020-12-16 10:11:53 所属栏目:百科 来源:网络整理
导读:我是面向对象编程的新手,这可能是一个愚蠢的问题,但是如果你想创建一个对象的副本,我不明白为什么使用A类代码比使用B类更好. class A { int num;public: A(const A ref) : num(ref.num) {};};class B { int num;public: B(B *ptToClass) : num(ptToClass-num
我是面向对象编程的新手,这可能是一个愚蠢的问题,但是如果你想创建一个对象的副本,我不明白为什么使用A类代码比使用B类更好.
class A { int num; public: A(const A &ref) : num(ref.num) {}; }; class B { int num; public: B(B *ptToClass) : num(ptToClass->num) {}; }; 如果我做对了,复制构造函数用在A类中. 解决方法
A类灵活且安全:您可以从任何A对象创建副本,即使它是临时对象.
B类安全性较低,因为您可以使用nullptr调用构造函数.它不太灵活,因为你只能使用ypur构造函数来复制一个对象,你可以从中获取地址,而不是const. B b1(...); const B b2(...); B fb(); // function returning a B B b3(&b1); B b4(&b2); // error b2 is const B b5(&fb()); // error you can't take adress of a temporary (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |