首页 > 学院 > 开发设计 > 正文

13.1.2

2019-11-14 10:24:06
字体:
来源:转载
供稿:网友

13.6 重载了Operator=,对象是相同类型的运算符 当用一个对象对另一个对象赋值的时候使用 类似于基础类型的赋值,把符号右边的赋值给左边 当类内没有定义的时候,编译器会合成自己的版本

13.7 会发生浅拷贝,这种情况是不允许的

13.8

#include <string>class Hasptr {public: HasPtr(const std::string &s = std::string()) : ps(new std::string(s)), i(0) { } HasPtr(const HasPtr& hp) : ps(new std::string(*hp.ps)), i(hp.i) { } HasPtr& operator=(const HasPtr& rhs){ if(this=&rhs) return this; delete ps; ps=new string (*rhs.ps); i=rhs.i; return *this;}PRivate: std::string *ps; int i;};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表