我想在C++中使用模板類,其中一個模板參數由用戶輸入在運行時確定。我敢肯定有一個簡單而漂亮的方式做到這一點,但我很新的C++和我仍然多態性與模板類掙扎......模板類的C++中的多態性
這是我希望做什麼:
if (argument==0)
typedef Class1 ActualClassUsed;
if (argument==1)
typedef Class2 ActualClassUsed;
MyTemplatedClass<ActualClassUsed> * object= MyTemplatedClass<ActualClassUsed>::New();
顯然在上面的例子ActualClassUsed沒有在合適的範圍內定義...任何簡單的方法來糾正這種情況?
感謝您的幫助!
_」其中一個模板參數由運行時用戶輸入確定。「_這是不可能的。模板在編譯時被實例化。 –
工廠模式和普通父類(普通接口) – KIIV
@skypjack但是試圖說明如何做到這一點是完全錯誤的。您事先需要模板實例,並選擇在運行時應使用哪個模板實例來創建對象實例。上面評論中提到的工廠模式可能是正確的選擇。 –