【发布时间】:2018-07-22 15:57:57
【问题描述】:
我在基类中创建了一个变量,它是模板的向量,但我无法从派生类访问该成员,有人可以解释一下吗?
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
/*
*
*/
template <typename T>
class Apple{
protected:
public:
vector<T> vec;
virtual void foo(T node) =0;
};
template <typename T>
class Ball:public Apple<T>{
public:
void foo(T node){
cout<<"hahaha\n";
vec.push_back(node);/* I GET COMPILATION ERROR HERE"vec was not declared in this scope"*/
}
};
int main(int argc, char** argv) {
Ball<int> b;
b.foo(10);
return 0;
}
【问题讨论】:
-
"I GET COMPILATION ERROR HERE" - 是因为您不想让我们知道它是什么而未共享错误吗?
-
不是私人使用
this->vec -
发布的代码编译得很好。我标记为不可重现。
-
这个might 很有帮助,但我认为它不适用,因为
vec是一个从属名称。
标签: c++ oop inheritance