首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

模板种中嵌套类之间的关系

2013-09-07 
模板类中嵌套类之间的关系#includeiostreamtemplateclass Tclass base{public:class people{public:pr

模板类中嵌套类之间的关系


#include<iostream>
template<class T>
class base
{
public:
class people
{
public:

protected:
std::string name;
int age;
};
class student:public people
{
public:
std::string GetName()
{
return name;
}
};
private:
T mt[10];
};
int main()
{
    return 0;
}

编译出错:I:\learn C++\Learn C++\main.cpp|19|error: 'name' was not declared in this scope|
何解?
查了相关资料,我认为与模板编译时的处理有关,因为没有生成相应代码,导致student和people类之间的关系不知道,所以才出现这种错误。
[解决办法]
return people::name;
[解决办法]
原因的话,你也知道了。
[解决办法]
这点微软的编译器做得比较好。vs2008是没问题的。类似的问题还有一个模板成员函数的特化问题。

热点排行