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

模板类中嵌套类之间的关系,该怎么处理

2012-03-24 
模板类中嵌套类之间的关系C/C++ code#includeiostreamtemplateclass Tclass base{public:class people

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

C/C++ code
#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是没问题的。类似的问题还有一个模板成员函数的特化问题。

热点排行