最近写代码时,碰到一个有趣的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++的反射特性不是很好,这个问题在动态语言里是迎刃而解
各位有什么好的方法?