essential c++ 第228页代码VS2008编译不能 求救
c++吧
全部回复
仅看楼主
level 1
ForeverPS2 楼主
头文件stack.h:
#include<vector>
#include<string>
using namespace std;
class stack
{
public:
     bool push(const string&);
     bool pop(string &elem);
     bool peek(string &elem);
     bool empty()const{return _stack.empty();}
     bool full()const{return _stack.size()==_stack.max_size();}
    
private:
     vector<string>_stack;
}
CPP文件stack.cpp:
#include "stack.h"
bool stack::pop(string &elem)
{
if(empty())return false;
elem=_stack.back();
_stack.pop_back();
return true;
}
bool stack::peek(string &elem){
if(empty())return false;
elem=_stack.back();
return true;
}
bool stack::push(const string &elem){
if (full())return false;
_stack.push_back(elem);
return true;
}

2010年08月21日 02点08分 1
level 1
ForeverPS2 楼主
1>正在编译...
1>stack.cpp
1>c:\users\administrator\documents\visual studio 2008\projects\test\test\stack.cpp(6) : error C2628: “stack”后面接“bool”是非法的(是否忘记了“;”?)
1>c:\users\administrator\documents\visual studio 2008\projects\test\test\stack.cpp(7) : error C2556: “stack stack::pop(std::string &)”: 重载函数与“bool stack::pop(std::string &)”只是在返回类型上不同
1>         c:\users\administrator\documents\visual studio 2008\projects\test\test\stack.h(10) : 参见“stack::pop”的声明
1>c:\users\administrator\documents\visual studio 2008\projects\test\test\stack.cpp(7) : error C2371: “stack::pop”: 重定义;不同的基类型
1>         c:\users\administrator\documents\visual studio 2008\projects\test\test\stack.h(10) : 参见“stack::pop”的声明
1>生成日志保存在“file://c:\Users\Administrator\Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm”
1>test - 3 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

2010年08月21日 02点08分 2
level 1
ForeverPS2 楼主
问题找到了 cpp文件也要加
include<string>
;using namespace std;
无语书上没写,还有没什么 using前面提示要加“;”?
2010年08月21日 03点08分 3
level 5
类定义完了要有分号,你这什么跟什么啊
2010年08月21日 05点08分 4
level 0
回复:4楼
照书打的
2010年08月21日 06点08分 5
1