最近寫代碼時,碰到一個有趣的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++的反射特性不是很好,這個問題在動態語言里是迎刃而解
各位有什么好的方法?