在C#我可以定義這樣的:通用類變量
public interface BaseObject
{
int GetValue();
}
public class Test<T> where T : BaseClass
{
T BaseObject;
}
這意味着我知道我可以alwaysa調用BaseObject.GetValue()/ BaseObject->的GetValue();因爲我知道baseobject有這個方法。
在C++中有類似的方法嗎?這樣我就可以定義多個類可以繼承的接口以及可以利用此類的類。
但我需要限制T是某種類型。所以它必須是一個從另一個對象繼承的對象。 – Deukalion 2013-02-27 21:49:26
@Deukalion:那麼你可以使用C#。 C++是具有不同語義的不同語言。我認爲你不需要*去做你所說的話,這只是你的感覺,因爲你對C#中的事情做了更多的經驗,而對C++沒有經驗。您仍然可以在編譯時檢查您的模板參數是否支持所需的接口,但不在類型級別。 – 2013-02-27 21:50:14
我問是否有類似的方法來產生相同的結果,而不是必須重現多個類。例如,如果我希望T成爲一個基類,其中包含該對象的類將使用的方法,但另一個對象可以擴展該對象,這意味着該對象只需知道它是從BaseClass繼承的對象。 – Deukalion 2013-02-27 21:53:51