1.给定声明 const char * const * pp; 下列操作或说明正确的是 A
A pp++
B (*pp)++
C (*pp) = \c\;
D 以上都不对
解:相当于(char const) ( const) *pp
**p是char型常量
*p是char const *型常量
p是char const *const型变量
2.c++定义一个空的类CTest,CTest没有定义任何成员变量和成员函数,在32位机器上,以下结论正确的有 BC
A 对该类求sizeof,结果为0.
B 给CTest添加构造函数,再对CTest求sizeof,结果为1.
C 给CTest添加虚函数,再对CTest求sizeof,结果为4.
D 给CTest添加虚函数,再对CTest求sizeof,结果为5.
解:
(1)空类的大小是1,空类的实例大小就是类的大小。如果实例的指针,则sizeof(a)就是指针的大小即4
(2)虚函数,在32位上是4,64位上是8
(3)虚函数指针大小是4
以上单位均为字节
3.虚析构函数的作用是 delete动态对象时释放资源
4.值类型的变量赋值只是进行数据复制,创建一个同值的新对象,而引用类型变量赋值,仅仅是把对象的引用的指针赋值给变量,使它们共用一个内存地址
C++常量指针与类大小、虚函数详解
本文解析了C++中const char*const* pp声明的含义,讨论了空类大小、构造函数和虚函数对sizeof的影响,并介绍了虚析构函数的作用。还区分了值类型与引用类型赋值的区别。
16万+

被折叠的 条评论
为什么被折叠?



