description: 最近看了好多C++的书籍,头都大了,感触比较深的是很多东西还是吃不透,自己在面向对象这块的积累还不够深,读起来比较吃力。后面准备多动手,每天从一些小的细节着手,慢慢修真自己一些不良的编程习惯。
最近看了好多C++的书籍,头都大了,感触比较深的是很多东西还是吃不透,自己在面向对象这块的积累还不够深,读起来比较吃力。后面准备多动手,每天从一些小的细节着手,慢慢修真自己一些不良的编程习惯。之前因为在公司比较忙,也没什么时间对自己学过的shell编程等知识点进行总结,这段时间也可以抽空做一下。
C++中的模棱两可相信大家也经常遇到,当然很多时候往往是在调试错误的时候才发现原来陷阱是因为自己的模棱两可造成的。看下面的代码:
#include <iostream>
void func(int var)
{}
void func(float var)
{}
using namespace std;
int main(int argc, char *argv[]) {
func(2.5);
}
有一定经验的程序员肯定能猜到编译结果(call to ‘func’ is ambiguous),因为2.5在C++中默认存储的数据类型是double,而重载的函数参数是int和float,double可以转换为int和float,就会出现模棱两可的错误。如果代码修改为:
#include <iostream>
void func(int var)
{}
void func(double var)
{}
using namespace std;
int main(int argc, char *argv[]