战魂小筑

讨论群:309800774 知乎关注:http://zhihu.com/people/sunicdavy 开源项目:https://github.com/davyxu

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  257 随笔 :: 0 文章 :: 506 评论 :: 0 Trackbacks

最近写代码时,碰到一个有趣的C++类拷贝问题:

 

class Base
{
public:
    std::string memberA;
};

class Child : public Base
{
public:
    Child( const std::string& v ){ memberB = v; }
    std::string memberB;
};

 

Base* a = new Child( "a" );

Base* b = new Child( "b" );

 

需要将 b类的基类及子类的所有成员函数拷贝给a类

注意:

1. Base和Child都有动态数据,不能用memcpy哦

2. 拷贝代码请写在Base或Child中,不要写在类外

3. 成员变量的数目不一定时,怎样才能做到最省力?( 不必把每个类的成员变量都=下)

 

C++的反射特性不是很好,这个问题在动态语言里是迎刃而解

各位有什么好的方法?

posted on 2009-12-16 16:54 战魂小筑 阅读(465) 评论(1)  编辑 收藏 引用 所属分类: C++/ 编程语言

评论

# re: C++类拷贝的一个有趣问题 2011-01-17 11:20 游客
阐述问题不清楚,上面代码中只有Base和Child类,没有什么b类;
将成员函数拷贝给另一个类是啥意思?对象之间只有数据成员占有各自的空间,函数成员好像没有吧!  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理