我想知道如果以下是在多重繼承的情況下設置基類的範式方法。這種方法有沒有陷阱?設定基類與多重約束的範式方法
#include <iostream>
struct A
{
int one, two;
};
struct B
{
int three, four;
};
struct C : A, B
{
C(int One, int Two, int Three, int Four) : A({ One, Two }),B({ Three, Four }){}
};
int main(int argc, char *argv[])
{
C myC(1, 2, 3, 4);
//a lot of code here
B myB={ 9, 10 };
static_cast<B&>(myC)= myB;//Code smell?
std::cout << myC.three <<","<<myC.four<< std::endl;
return 0;
}
類層次結構(單個或多個繼承)和賦值很少一起工作。你有真正的用例嗎? –
當然,我有一個包含程序設置的大型結構。有時,GUI界面用於配置此設置信息的一部分。在這種情況下'static_cast(channel_settings)= getRenderSettings()''。在一個普通的世界裏,這些設置將存在於GUI中,但我試圖在兩個組件之間進行強烈的分離以進行測試。 –
Mikhail
比繼承更喜歡構圖。 –