我想寫一個通用接口。我需要一個std :: vector中不同對象的列表。這些對象中的每一個都有另一種類型但接口相同。不同類型的通用接口
例如:
struct Base
{
std::string name;
virtual void doWork(???, ???);
virtual void print(???,???);
};
struct ObjA : Base
{
void doWork(???,???) override
{
std::cout << "Hello\n";
};
void print(???,???) override
{
std::cout << "Hey\n";
};
}
struct ObjB : Base
{
void doWork(???,???) override { std::cout << "Hello\n"; };
void print(???,???) override { std::cout << "Hey\n"; };
}
但我不知道???的類型,???。由於無法與模板結合使用虛擬化,因此我正在尋找一種優雅的方式。
是否有可能在編譯時解決這個問題?
請至少提供一個預期用途的完全具體示例。現在(沒有這樣的例子)投票結束,因爲不清楚。 –