简单的说,
语法错误:就是你的c++代码书写有问题,不是标准定义的;(比如 int写成了in,漏写个分号,漏写个括号,把int型参数赋值给字符串,等等),一般语法错误在编译时都是可以被编译器发现,发出警示的;
编译错误:是在编译时你本身的代码没问题,但是调用的一些文件、函数库,找不到,或者和你想要使用的版本不一致,导致函数参数不一样。
大多数情况下我们分类错误都是说 语法错误 和 逻辑错误;
逻辑错误:指你的语法正常,编译也能通过,但是按你的代码执行会出错。包括执行结果与预期不一致,或者程序执行就挂掉(一般是内存泄露等问题)
程序的错误主要分成三种:
编译链接错误;
编译链接错误又分成编译错和链接错。
编译错就是普通意义上的语法错,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;
链接错是指程序通过了语法检查,但是无法生成可执行文件,最常见的是链接找不到lib库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。
运行错误;
运行错是程序可以执行,但是在执行过程中发生异常,提前退出程序。最常见的是指针越界,打开文件失败继续读取文件,总而言之是让计算机执行一些不能执行的语句。
逻辑错误
逻辑错是程序也能运行,就是结果不对,主要原因有:程序算法本身错误,程序和算法不同义等。
例如:新手经常将判断相等的==写成=赋值,往往就会导致逻辑错。
你的BD(int,int); 是一句函数调用?还是一句函数声明?
编译错误就是语法错误,编译时检查的是语法是否正确,不正确就报错。
还有就是链接错误和运行时错误