原标题:C++ 编程中遇到的一些实际问题
1:error:"Quote",未知重写说明符
原因:初始化列表的:(冒号)是中文形式的,没发现
2:fatal error C1083: 无法打开包括文件:“Disc_quote”: No such file or directory
原因:“Disc_quote.h”,自定义版本的头文件需要加.h
3:error:protected成员 "price"不是类"Flower"的非静态数据成员或基类
原因:如果你确定这个变量是非静态成员,那么肯定是有一个地方的;结尾给忘了!!!
4:error:声明没有存储类或类型说明符
原因:将出错的语句放在main函数中,就不会报错,因为函数外只能定义全局变量或者对象 而不能执行语句及调用函数,只能写到函数体里
5::error C2504::未定义基类
原因:头文件在包含顺序上不要成闭合的环状,他们结构顺序应该是树,否则调用未定义完成的头文件类将是未定义的,产生未定义基类的错误
6:error:c++不允许使用抽象类类型对象,我明明每个函数都实现了的
原因:纯虚函数在派生类中必须重新定义,在此我是将虚函数的名字写错,造成错误
7:error C2678: 二进制“==”: 没有找到接受“std::basic_string<_elem>”类型的左操作数的运算符(或没有可接受的转换)
原因:自定义的模版或者函数中使用的实参是否支持你的相关操作:比如相等、大于等于等等。在此是因为没有包含头文件string
8:LINK : 没有找到 c:usersadministratordocumentsvisual studio 2010ProjectsTemplate16DebugTemplate16.exe 或上一个增量链接没有生成它;正在执行完全链接
到生成目录下,发现会.ilk这么一个文件,清理,然后将这个ilk文件删除之后,再生成,就不会出现这个错误。或者:打开项目属性,链接器(Link),常规(Conventional),将"启用增量链接"设置为"否(/INCREMENTAL:NO)";再次进行编绎,妥了!这个不是什么错的,当前的VS2003,2005,2009有增量编译功能,就是假如你的代码改动了,他们是不完全重新编译整个代码的,而是只编译你所更改的部分。
出现这个提示,
1.你是首次进行编译,这时当然没有生成过可执行文件,也就无法增量链接了。
2.你上一次编译的时候有错的,没有生成可执行文件。
解决方案:清理解决方案,重新编译生成
9:
1>c:usersadministratordocumentsvisual studio 2010projectstemplate16template16show_times.h(4): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:usersadministratordocumentsvisual studio 2010projectstemplate16template16show_times.h(4): error C2143: 语法错误 : 缺少“,”(在“
1>c:usersadministratordocumentsvisual studio 2010projectstemplate16template16show_times.h(29): error C2912: 显式专用化;“int show_times(const std::vector<_ty> &,char *)”不是函数模板的专用化
1> with
1> [
1> _Ty=char *
1> ]
解决方案:在vector前加std::即可,作用域限定符很重要
10:error:对象包含与成员函数不兼容的类型限定符
常成员函数(加const的成员)的使用:
1. 对于一个常量对象,只能调用常函数
2. 如果常函数里面不小心修改了类成员或者调用了非常函数,编译器会帮你找出这个错误。
若传入的成员是一个const类对象,则其只能访问其常函数(加const)返回搜狐,查看更多
责任编辑: