模板类的嵌套
来源:互联网 发布:淘宝卧室门帘 编辑:程序博客网 时间:2024/04/30 06:59
#include<iostream>using namespace std;template<class T>class A{public:struct B {B(T j): i(j) {}T i;}b;A(): b(1) {cout<<"A construct"<< endl;}B get() { // 如果在B后面加<T>, 会导致错误,因为B并非特定模板类,虽然有T在其定义内,但他的T是随A的,在A中T属于已知范畴return b;}/*B<T> get() {return b;} */};template<class T>class C{public:template<class S>struct D{D(S j): i(j) {}S i;}; //不能在此直接加变量D<T> d;C(): d(5) {}D<T> get() {return d;}/* D get() {return d;} */};int main() {A<int> a;//A<int>::B<int> b(2);//A::B<int> b(2);A<int>::B b(2);C<int>::D<string> d("test");cout<< b.i<< endl;cout<< d.i<< endl;}
这个问题是我在做list类的iterator时的疑惑,总会有<T>的错误!
如果内部成员的是需要依赖于T的,那自己编的话不如就不要内嵌模板了,如果是想让他变成模板的话,要注意一点:
<span style="white-space:pre"></span>声明时前面加个 typename;
这个是在查问题时,发现的额外奖励,关于这点参考:http://blog.csdn.net/WaitForFree/article/details/10128771
0 0
- 模板类的嵌套
- 嵌套模板的使用
- 模板中的嵌套类
- vs2008的页面嵌套模板
- 模板函数的嵌套调用
- 使用VS2008的页面嵌套模板
- 嵌套重载<< 以及模板特化的使用
- Day49、子类模板访问基类模板、模板型模板参数、嵌套模板的外部定义、“零”初始化、虚函数和多态、编译模型
- 类模板,多种类型的类模板,自定义类模板,类模板的默认类型,数组的模板实现,友元和类模板,友元函数,类模板与静态变量,类模板与普通类之间互相继承,类模板作为模板参数,类嵌套,类模板嵌套,类包装器
- C++模板类+嵌套类实例
- 模板类参数中嵌套模板类问题
- C++ 的嵌套类模板的特化定义不允许写在类定义的范围内
- C++ 的嵌套类模板的特化定义不允许写在类定义的范围内
- Linux g++ 关于模板类中嵌套子类的编译问题
- 7w6:第七周程序填空题3(类模板的嵌套)
- php的Smarty中实现模板嵌套的方法(转)
- Yii2 模板嵌套用法
- 001 - smarty 模板嵌套
- 八、定时器
- SQL左右连接中的on and和on where的区别
- 树形结构的数据库表Schema设计
- 隐藏滚动条
- android:padding和android:layout_margin的区别?
- 模板类的嵌套
- 类的继承层次结构的宽度和深度
- VIM插件 - Project项目管理工具
- PHP类别管理:类别增加、选择
- App 打包的几种方式
- Android面试宝典
- 傅立叶变换的通俗入门
- java设计模式(四)---原型模式
- 第十四周项目4(3)-处理C++源代码的程序