首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅将基础零件从一个对象指定给另一个对象

仅将基础零件从一个对象指定给另一个对象
EN

Stack Overflow用户
提问于 2015-06-06 22:09:02
回答 1查看 27关注 0票数 1

当类B从A派生时,我有一个简单的继承。A包含一些简单类型的成员定义,没有指针。B类更为复杂,它可能包含指向对象之间某些逻辑连接的指针。如果我有两个B类型的对象(例如b1和b2),当我只将b2的A部分复制到b1时,如何正确地写入赋值。适合我的结构是:*(A*)&b1 = *(A*)&b2。但是,在现代C++上实现这一点的正确方法是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2015-06-06 22:18:52

a)你正在做的事情在技术上看起来是正确的(例如,我认为它应该适用于所有地方)

b)然而,与任何使用强制转换的代码一样,它是繁琐且容易出错的

c)为了使它更具可读性,我建议添加如下内容:

代码语言:javascript
复制
class A {
  //...
  public:
  void copyA(const A& other) {
    *this = *other;
  }
};

对于您的类A,那么您将能够调用更明显的b1.copy A(B2),而不是当前(正确但容易出错)的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30683848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档