我目前正在創建一個必須從std :: vector派生的類。我意識到它可能不好做,但我需要。現在我的問題是你如何訪問成員函數中創建的向量,基本上使類訪問自己像一個整數的常規向量?例如,我正在查找myVector.at(0)的等效項,以返回向量中的第一項。另外,向量的大小應始終6.這是我的代碼至今:繼承std :: vector
class aHistogram : public vector<int>
{
public:
aHistogram(); //default constructor for histogram class
void update(int face); //Function to update histogram
void display(int maxLengthOfLine); //Displays histogram to the scale of maxLengthOfLine using x's
void clear();//Function to clear histogram bin counts
int count(int face) const; // Function to return number of times a face has appeared
private:
int numx, m, j; //Variables used in functions
};
#endif
需要的類來訪問本身的功能是下面,我知道有沒有所謂的「myVector」矢量但我失去的是能夠執行操作的等效語法。
void aHistogram::clear()
{
//Clears bin counts to 0
myVector.at(0) = 0;
myVector.at(1) = 0;
myVector.at(2) = 0;
myVector.at(3) = 0;
myVector.at(4) = 0;
myVector.at(5) = 0;
}
:
您可以在子類中做這樣的功能私有成員實現這一目標。這個問題解決了從標準庫類型繼承的優點/缺點,以及哪些類型被設計爲從繼承。這裏的OP是問一個簡單的語法問題。 – Praetorian 2014-12-05 15:43:05
使用'vector'的成員函數就好像它們是由你的類定義的一樣。如果您的類定義了'vector'接口中已存在的成員函數,例如'clear()',則只需明確限定調用。在這種情況下,你可以使用'vector :: clear();'。例如:http://coliru.stacked-crooked.com/a/d3cec10a471438eb –
Praetorian
2014-12-05 15:48:35
@Praetorian非常感謝!正是我所需要的。 – Antoninus 2014-12-05 15:54:52