const与#define的区别 ,理解不正确的一项是

来源:百度知道 编辑:UC知道 时间:2024/05/04 11:57:21
A.c++语言可以用const来定义常量,也可以用#define来定义常量
B.#define定义的宏常量是全局的,const可以定义类常量,但不能在类声明中初始化const数据成员,只能在类构造函数的初始化表中进行
C.const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的
D.const常量和宏常量都有数据类型

ABC都是正确的,这个再各种书籍中均有过原句。也容易理解

D明显错误。宏只是单纯的替换。并不错类型与安全检查。

我觉得 D 是错的。

宏是编译代码的时候直接替换的,因此不存在什么数据类型,而 const 则是需要申明常量类型的。

肯定是D错

宏常量是不管数据类型的,它只是单纯的字符替换而已,方便程序员记忆和编写,提高可读性.一般宏定义的字符都是可以从字面上看出所代表的涵义.

D