我想實現一個C++方法,並想在其中傳遞一個泛型參數。我只想將該參數分配給對象的屬性。這裏有一個例子:在C++方法中傳遞泛型類型作爲參數
class Myclass {
public:
unsigned long long var1;
unsigned short var2;
signed short var3;
}
現在我有MYCLASS的一個全局對象在SomeOtherClass和方法說:
void SomeOtherClass::updateMyClassValue(int paramType, <Generic> value) {
switch(paramType) {
case1:
objMyClass.var1 = value;
case2:
objMyClass.var2 = value;
case3:
objMyClass.var3 = value;
}
}
如何通過這種類型的,因爲如果我使用的固定式如unsigned long long
爲參數類型,我將無法將其分配給var2 & var3。我也不想丟失數據,例如簽名數據可能具有價值。
請幫我解決這個問題,我沒有使用C++的經驗。我不知道我是否可以在C++中使用模板<>,如果是的話,比如何?
感謝這樣做的
這就是模板發揮作用。只是張貼一些代碼不會幫助你交配。看看這個教程,因爲模板在C++中是一個巨大的大問題:http://www.codeproject.com/Articles/257589/An-Idiots-Guide-to-Cplusplus-Templates-Part –
你需要全部三個變量? –
另外上面的例子是一個不好的例子(糟糕的設計),因爲您需要檢查呈現模板的類型,並且您可以將MyClass中的1個函數與正確的數據類型一起使用。 –