C++怎么实现拷贝的效果
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要讲解了"C++怎么实现拷贝的效果",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++怎么实现拷贝的效果"吧!C.61:拷贝操作应该具有拷贝
千家信息网最后更新 2025年02月03日C++怎么实现拷贝的效果Reason(原因) Example(示例) Example(示例) Note(注意)
这篇文章主要讲解了"C++怎么实现拷贝的效果",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++怎么实现拷贝的效果"吧!
C.61:拷贝操作应该具有拷贝的效果
这是一个约定俗成的语义。当x=y被执行之后,我们应该也可以认为x==y。拷贝动作之后,x和y可以是独立的两个对象(值语义,象非指针内置类型和标准库类型那样)或者同一个共享对象的不同参照(指针语义,象指针的行为那样)。
class X { // OK: value semantics
public:
X();
X(const X&); // copy X
void modify(); // change the value of X
// ...
~X() { delete[] p; }
private:
T* p;
int sz;
};
bool operator==(const X& a, const X& b)
{
return a.sz == b.sz && equal(a.p, a.p + a.sz, b.p, b.p + b.sz);
}
X::X(const X& a)
:p{new T[a.sz]}, sz{a.sz}
{
copy(a.p, a.p + sz, p);
}
X x;
X y = x;
if (x != y) throw Bad{};
x.modify();
if (x == y) throw Bad{}; // assume value semantics
class X2 { // OK: pointer semantics
public:
X2();
X2(const X2&) = default; // shallow copy
~X2() = default;
void modify(); // change the pointed-to value
// ...
private:
T* p;
int sz;
};
bool operator==(const X2& a, const X2& b)
{
return a.sz == b.sz && a.p == b.p;
}
X2 x;
X2 y = x;
if (x != y) throw Bad{};
x.modify();
if (x != y) throw Bad{}; // assume pointer semantics
除非你在构建某种"智能指针",否则值语义更好。值语义最容易理解而且也是标准库功能期待的。
感谢各位的阅读,以上就是"C++怎么实现拷贝的效果"的内容了,经过本文的学习后,相信大家对C++怎么实现拷贝的效果这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
拷贝
效果
语义
C++
指针
a.p
学习
内容
对象
标准
示例
类型
不同
约定俗成
两个
功能
动作
原因
就是
思路
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
信息系统网络安全认证
湖北计算机软件开发哪家正规
江苏数据库安全箱定制价格
省司法厅网络安全会议
深圳因味网络技术
软件开发和用户
应用系统调用数据库脚本
武汉烽火软件开发外包
服务器配置参数要求
网络安全模式有什么
慈溪嵌入式软件开发工程
沈阳万有引力网络技术
玖瞬软件开发有限公司
四平哪里的软件开发公司好
在sql数据库中查看表
花呗自动提额服务器调整要多久
大学生学习网络安全现状答案
上海工程管理软件开发平台
网络安全中的入侵检测的原理
服务器 添加管理员账号
保网络安全管理制度
软件开发 记录
江苏天创网络安全工程
兴化巨型网络技术哪家好
机顶盒软件开发工程师招聘
未成年人网络安全 宣传
数据库课程表例子
成武高校诚信积分管理软件开发
苹果服务器和安卓互通
管理服务器nginx