小问题--程序编译错误
时间:2008-05-09 11:18:19
来源:论坛整理 作者: 编辑:chinaitzhe
- C/C code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ #include <iostream> #include <vector> #include <set> #include <string> #include <utility> using namespace std; typedef pair<short,short> location; class Query { protected: set<short> *_vec2set(const vector<location> ); static vector<string> *_text_file; set<short> *_solution; vector<location> _loc; public: virtual void eval() = 0; void display()const; const set<short> *solution()const; const vector<location> *locations()const {return &_loc;} static const vector<string> *text_file(){return _text_file;} }; inline const set<short>* Query::solution()const { return _solution ? _solution : _solution = _vec2set(&_loc); } int main() { return 0; }
网友回复:试图对一个const类型的类对象调用非const型的成员函数。
一般造成此问题的原因是,你的调用是在一个const型的成员函数中进行的。对于const型的成员函数,编译器会将其引用的任何成员变量标记为const类型——虽然你在类的声明中该成员变量可能不是,从而导致此错误。
假如是我说的情况,删掉调用函数的const说明即可。
网友回复:#include <iostream>
#include <vector>
#include <set>
#include <string>
#include <utility>
using namespace std;
typedef pair <short,short> location;
class Query
{
protected:
set <short> *_vec2set(const vector <location>* );
static vector <string> *_text_file;
set <short> *_solution;
vector <location> _loc;
public:
virtual void eval() = 0;
void display()const;
const set <short> *solution();
const vector <location> *locations()const {return &_loc;}
static const vector <string> *text_file(){return _text_file;}
};
inline const set <short>*
Query::solution()
{
return _solution ? _solution : _solution = _vec2set(&_loc);
}
int main()
{
return 0;
}
网友回复:
#include <iostream>
#include <vector>
#include <set>
#include <string>
#include <utility>
using namespace std;
typedef pair <short,short> location;
class Query
{
protected:
static set <short> *_vec2set(const vector <location> );
static vector <string> *_text_file;
static set <short> *_solution;
vector <location> _loc;
public:
virtual void eval() = 0;
void display()const;
const set <short> *solution()const;
const vector <location> *locations()const {return &_loc;}
static const vector <string> *text_file(){return _text_file;}
};
inline const set <short>*
Query::solution()const
{
return _solution ? _solution : (_solution = _vec2set(_loc));
}
int main()
{
return 0;
}
关键字:问题,程序,编译,错误,
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面