這是我的問題:我想子類QVector爲了添加一些特定於我的上下文的函數。QVector子類化<T>
幼稚的做法是:
class ClassVector : public QVector<Class> { ... }
但這裏的問題是,當我需要調用上QVector其返回新QVector(或&自身)幾個功能之一:
ClassVector cv1, cv2;
auto sum = cv1 + cv2;
這是有效的但是 sum是QVector,因爲operator + return QVector。
有沒有簡單的方法來讓它以某種方式返回ClassVector?
呼籲結果的reinterpret_cast是不是我想做的事:/
如果它是重要的,我只添加功能ClassVector,沒有數據成員。
感謝您的幫助。
我不知道QVector,但並不是所有的類都意味着被繼承。你可以添加你的函數作爲獨立(或在命名空間)?特別是如果你只添加功能,並且它沒有虛擬功能。 – 2014-09-23 12:57:44
我建議不要繼承'QVector'。你可以添加你的函數作爲自由函數,因爲你顯然不需要爲類添加狀態?或者,你可以用'QVector'作爲成員而不是超類來創建你的新類(這稱爲聚合)? – 2014-09-23 12:58:38
是的,這就是我目前正在做的(命名空間中的免費函數),但是我很好奇,如果沒有更聰明的方法來做這件事..看起來它不是:/ – Paladin 2014-09-23 13:11:43