收录日期:2019/02/16 20:17:05 时间: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 ....

现在的3G手机网站跟WAP网站不是一回事吧? 如何根据不同字符串值,生成最终的常量名 大家有没有办法实现以下效果:这里有若干条句子,要分页显示,有上一页和下一页Button 有关图象处理,我想问关于直方图均衡化的知识? 【已处理】请求删除资源 资源引用 wc.DownloadFile(\"compliance/photo\", fileName)”引发了“System.Net.WebException”类型的异常 用域名方式或链接方式打开ftp,如何设计 登录页面?拜求! 数值溢出问题 找出坐标值一样,但编号不一样的点 找出坐标值一样,但编号不一样的点 VC保存pdf格式的路径问题 如何获得startActivity打开的activity的引用? 怎么改变label的颜色啊 vb.net求助,读取网页源码中脚本变量? 阿呆哥你一个整那嘛多中文ID 倒分累不? 求助 用CE找到血的基址不是固定的 坐等js传递参数给VC程序的问题 如何获取网页的属性值? web调用存储过程超时的问题 windows工具栏的渐变背景色的问题 table平铺 matlab转c++的一段代码,需要动态插入数据的结构体如何定义? java页面,更新数据之后刷新当前页面,该怎么做 VC保存pdf格式的路径问题 如何调用某个类中的方法,当这个类以泛型的形式被传递? 在北京WEB开发维护的日语行情怎么样 jquery或js如何隐藏显示a标签的href DelphiXE 安装时发生严重错误