
class Player{ private: int ID; int pMoney; int doubleIndicator; int squareposition; Bank& bank; string pname; Square* capturedSquare; multimap<string,PropertySquare*> squaresColBought; multimap<string,House*> housesColBuilt;} 如果我想要实现赋值运算符,那么它是否必须避免使用引用作为类成员?地图成员怎么样?我应该如何最终实现赋值运算符?
我不知道的另一个非常重要的问题是当我删除持有播放器的向量的迭代器时,指针类成员指向的对象会发生什么.任何帮助?
解决方法 当你想要一个赋值 *** 作符时,我不会使用引用成员.如果你使用(智能)指针,你可以做Player &operator=(Player const &other){ bankPtr = other.bankPtr; // copy other members} 在目前的情况下,bank = other.bank将复制other.bank的内容,而不是将此银行指向其他银行引用的内容.
对于多重类型的成员,它们可以被复制没有问题,但请记住,您将获得一个“深”的密钥副本(因为它们是字符串类型),而是一个“浅”的指针副本值,所以你最终得到共享状态.您可能需要使用shared_ptr作为值.
总结以上是内存溢出为你收集整理的c – 具有引用类成员的赋值 *** 作符全部内容,希望文章能够帮你解决c – 具有引用类成员的赋值 *** 作符所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)