收录日期:2019/08/18 17:45:24 时间:2016/05/30 10:06:12 标签:C++ 语言
#include<iostream>
#include<fstream>
#include<vector>
#include<string>

using namespace std;

void main()
{
typedef struct
{
int NEbeg;
int NEend;
string NEtype;
}NE;
    NE zhp[2];

zhp[0].NEbeg = 2;
zhp[0].NEend = 5;
zhp[0].NEtype = "nt";

zhp[1].NEbeg = 9;
zhp[1].NEend = 16;
zhp[1].NEtype = "ni";

vector<NE> NEvec;

NEvec.push_back(zhp[0]);
NEvec.push_back(zhp[1]);

cout<<"successful!"<<endl;
cout<<NEvec[0].NEbeg<<endl;
}

这样为什么会有编译错误,而把结构体的定义
typedef struct
         {
int NEbeg;
int NEend;
string NEtype;
}NE;
放在函数外面就可以了?
晕……PF佩服楼主的基本功……
局部类不能作为模板参数,这是 C++ 一个很可惜的限制。
up
哈哈,放错地方拉
前面老大已经说了,像这样放在函数里面的类叫局部类,局部类的限制太大了,几乎很少看到使用

局部类的限制,大致有以下几点
1. 局部类只在其所在的局部域内可见
2. 在定义局部域以外的地方不能(实际上是没有语法)访问局部类的成员
3. 局部类的函数必须定义在类里面
4. 局部类不能还有静态成员
5. 局部类只能访问外围定义的类型名、静态变量或者枚举值,不能访问局部对象


原来如此啊呀...
为什么不能用作模板参数,这是因为模板是需要实例化的(不可能在,实例化时,怎么访问这个局部类呢?main()::NE? main::NE?
这其实是第1,2个限制

就是说不能通过的原因就是那个模板要实例化
上面的兄弟们说的太好了,大家再来讨论啊
是的
局部类不能作为模板参数
学习了。

呵呵,楼主发贴是一个角,现在成了两个角啦
呵呵,,学习。。
凑个热闹, 局部类也不熟 ^_^
学习ing ....

生成的目录中有system文件 新人报道 如何修改日期型数据 散分! unicode to utf-8 过程处理中怎么稳定暂停?-----------------------近期结完别的贴后再加分! 在bb.jsp里我就写了一个js就是 cc.jsp里面应该怎么写? oracle9i 中blob类型对应的c#类型是什么? nokia n72 文件写不了 散分!大家有没有好的创意,思路。如果自己创业有没有好的点子 求救:asp+access转为asp+sql2000后不能上传图片啦! 请详细解释下编译器内部链接和外部链接的区别 命苦的IT从业人员们,关于猝死,大家有什么看法。 关于Blog的问题 小胖请教各位哥哥姐姐一些界面设计的问题 【圣经】旧约 -- 创世记(Genesis) -- 第 12 章 eclipse无法识别java.rmi.RemoteException这个包 战战兢兢!!已经入职一个月了,一直没有人来管我,会不会突然被裁啊? 怎么批量执行某个文件夹中的SQL脚本 如果让你任选历史人物,你会选谁当老婆,选谁当妾(允许最多5位) 求Tdxtreelist的使用方法。 请问:回车键让光标移动到下一个控件的问题... Socket接收的数据不全是怎么一回事?单步执行就可以全部接收 查询语句问题,请帮忙? c++builder checklistbox drawitem 事件无法响应 本人为我姐征婚----绝对真实,不诚勿扰 Structs1.2 数据库配置出错 (100分) Cannot create JDBC driver of class \'COM.ibm.db2.jdbc.app.DB2Driver\' for .. 如何生成函数之间的调用关系图? windows环境下 新浪是如何做到的静态页面分页的? 关于数据库的复杂查询问题