如何在仍然使用模板的情况下访问T2中的T1成员?
// All goodclass TA{ public: TA() {} protected: int m_t;};class TB : public TA{ public: TB() {} int get() { return m_t; } protected:};// Error in T2template<typename T>class T1{ public: T1() {} protected: int m_t;};template<typename T>class T2 : public T1<T>{ public: T2() {} int get() { return m_t; } protected:};解决方法 您需要使用this-> m_t使其成为从属名称.编译模板时,会分两个阶段查找名称.当编译器首先解析模板时,将查找非依赖名称.在实例化模板时查找从属名称.将其更改为this-> m_t会延迟查找,直到实际实例化get函数为止,在这种情况下,基类类型是已知的,编译器可以验证成员的存在. 总结
以上是内存溢出为你收集整理的c – 与模板混合的类成员的继承全部内容,希望文章能够帮你解决c – 与模板混合的类成员的继承所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)