回 帖 发 新 帖 刷新版面

主题:在MFC中怎么样使用 STL???急

我在MFC的头文件中定义了一个
stack<int> m_stackNumber;
 在CPP中:
#include <stack>
using namespace std;

可是编译器报错:
e:\my documents\visual studio 2008\projects\aboutcpp\cac\cac\ompute.h(65) : error C2143: syntax error : missing ';' before '<'
1>e:\my documents\visual studio 2008\projects\aboutcpp\cac\cac\ompute.h(65) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\my documents\visual studio 2008\projects\aboutcpp\cac\cac\ompute.h(65) : error C2238: unexpected token(s) preceding ';'

这个是咋回事儿???高人帮忙啊,先谢谢了!!!

回复列表 (共2个回复)

沙发

在编译的时候,编译器先是使用H文件,在LINK的时候才会用到CPP,你把#include <stack>放到CPP文件中,在H文件中声明一个stack<int> ,编译器自然不知道这个stack是什么东西了.建议使用预编译头.
要不就使用一个头文件来包含需要的文件.如#include <stack>,并在头文件里包含这个头文件.
要不就直接在用到的地方包含需要的头文件.
你使用MFC的话,直接把#include <stack>放到stdafx.h文件里就可以解决了.

板凳

如果你使用MFC的收集类的话,可以在stdax.h中包含头文件#include <afxtempl.h>
收集类支持Array,List,Map!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册