template<class T>
class base
{
class nestedClass
{
T pos;
};
class derivedClass:public base<T>::nestedClass
{
void fun(){
pos = pos +5; // error: pos is not declared in this scope
}
};
};
Q
嵌套类继承
-1
A
回答
3
C++ 03 [14.6节/ 8]表示
当寻找一个名称的模板中的定义中使用的声明,通常的查找规则(3.4.1,3.4.2)被用于为非独立的名字。将依赖于模板参数的名称查找推迟到实际模板参数已知(14.6.2)。
第14.6.2/3说
在一类模板或模板类中的成员的定义,如果一个基类类模板的依赖于模板的参数,所述在类模板或成员的定义点或在类模板或成员的实例化过程中,不检查基类的范围。
pos
是一个非依赖名称,因此基类不被检查。
所以你有两个选择。
- 采用全会员即
base<T>::nestedClass::pos
- 使用
this->pos
合格的名称。
1
它已被明确为基础参考:: nestedClass :: POS [或使用using语句]
1
你不把POS进入活动范围。您可以使用this->pos += 5;
或using nestedclass::pos
。
相关问题
- 1. C#嵌套类和继承
- 2. 的Python:嵌套类继承
- 3. 嵌套类和继承
- 4. JS嵌套继承
- 5. 如何嵌套类和继承类
- 6. 继承的嵌套类到子类
- 7. 继承的类是否继承嵌套的类?
- 8. 从受保护的嵌套类继承的公共嵌套类?
- 9. 为什么嵌套类“继承”?
- 10. 不直观的嵌套类继承
- 11. C#继承自嵌套类本身
- 12. C++错误C4091当继承嵌套类
- 13. python与相邻继承的嵌套类?
- 14. 嵌套主页和继承
- 15. C++中的嵌套继承
- 16. 嵌套单表继承
- 17. 嵌套类如何从容器类继承?
- 18. 从基类继承时,嵌套类会发生什么?
- 19. 类继承或嵌套类,哪个更好?
- 20. 使用嵌套对象处理父类和子类的继承
- 21. 嵌套的C++类是否可以继承它的封闭类?
- 22. 的JavaScript的Object.create - 继承嵌套属性
- 23. 与继承的资源嵌套对象
- 24. 嵌套和继承异步/任务
- 25. ui.router嵌套视图继承父窗体
- 26. 嵌套聚合物模板的继承
- 27. WPF:VerticalAlignment是否由嵌套容器继承?
- 28. Rails应用继承和嵌套资源
- 29. CSS嵌套:从谁那里继承?
- 30. Javascript嵌套函数属性继承
这充满了语法错误。 – sth 2011-02-02 04:23:27
对不起,我只是从我的代码简化。 – Sean 2011-02-02 04:25:27
请复制并粘贴您的*真实*代码。你显然已经省略了很多代码,并且在确定究竟出了什么问题时,你所遗漏的一些代码可能很重要。创建一个编译的小例子(或者你认为*应该*编译)并且仍然演示这个问题。 – 2011-02-02 04:25:54