c++ - C++继承模板类:隐藏成员变量
问题描述
为什么以下代码无法编译?
#include <iostream>
template <class T>
class A
{
public:
T data;
};
template<typename T>
class B : public A<T>
{
public:
void foo(){printf("%d\n", data);}
};
int main()
{
B<int> b;
}
错误:
bla.cpp: In member function ‘void B<T>::foo()’:
bla.cpp:14:30: error: ‘data’ was not declared in this scope
void foo(){printf("%d\n", data);}
似乎成员变量“数据”由于某种原因被隐藏了。
解决方案
您可以通过以下方式访问基础的成员变量this
:
this->data;
推荐阅读
- javascript - react 中的 setState 函数不会改变我的组件的状态
- python - Python/Selenium 陈旧元素参考
- python - 无法使用 torch.Tensor 创建张量
- matlab - 如何在 Matlab 中对二维扫描的时间序列应用移动中值滤波器?
- sql - SQL,尝试使用日期时间列获取总和
- python - 循环更改模型对象名称:python & sklearn
- powershell - 我将如何指定一个目录来运行将编辑文件扩展名的 PowerShell 脚本?
- hadoop - Hadoop 3.1.0——没有到主机的路由
- c# - 如何根据 c#.net 中过滤的树视图检查一个树视图的节点
- python - SSL 错误 - Python3