51.静态成员变量的定义:
(1)在定义时直接通过static关键字修饰。
(2)静态成员不依赖于任何对象,需要在类外单独分配空间。
(3)语法规则:Type ClassName :: VarName。
静态成员函数的定义:
(1)在定义时直接通过static关键字修饰。
(2)其余部分与普通成员函数定义相同。
52.从命名空间角度:
(1)类的静态成员只是类这个命名空间中的全局变量和全局函数。
(2)不同之处只是类可以对静态成员进行访问权限的限制,而命名空间不行。
从面向对象角度:
(1)类的静态成员属于类概念本身。
(2)类的所有对象共享相同的静态成员。
53.C++类对象中的成员变量和成员函数是分开存储的:
成员变量:普通成员变量存储于对象中,与struct变量有相同的内存布局和字节对齐方式。静态成员变量存储于全局数据区。
成员函数:存储于代码段中。
54.静态成员函数与普通成员函数的区别:
(1)静态成员函数不包含指向具体对象的指针。
(2)普通成员函数包含一个指向具体对象的指针。
55.(1)C++标准库并不是C++语言的一部分:
(2)C++标准库是由C++语言编写而成的类库和函数的集合。
(3)C++标准库中定义的类和对象都位于std命名空间中。
(4)C++标准库的头文件都不带.h后缀。
(5)C++标准库涵盖了C库的功能,C库中的<name.h>头文件对应C++中的<cname>。
56.C++中操作符重载的本质:
(1)C++中通过operator关键字可以利用函数扩展操作符。
(2)operator的本质是通过函数重载实现操作符重载。
57.C++中的类的友元:
(1)private声明使得类的成员不能被外界访问。
(2)但是通过friend关键字可以例外的开放权限。
58.用成员函数重载的操作符:
(1)比全局操作符重载函数少一个参数,即左操作数。
(2)不需要使用friend关键字。
59.无法修改左操作数的类时,使用全局函数进行重载,=,[],(),->操作符只能通过成员函数进行重载。
60.&&和||是C++中非常特殊的操作符:
(1)&&和||内置实现了短路规则。
(2)操作符重载是靠函数重载完成的。
(3)操作数作为函数参数的传递。
(4)C++的函数参数都会被求值,无法实现短路规则。