我目前正在创建一个必须从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