15、关于C++语⾔,以下说法不正确的是( )。
A. 若对象被定义为常量,则它只能调用以 const 修饰的成员函数。
这是正确的。常量对象只能调用常量成员函数,以确保不会修改对象的状态。
B. 所有的常量静态变量都只能在类外进行初始化。
这是不正确的。对于类的静态常量成员变量,如果它们是整数类型(如 int、char 等),可以在类内直接初始化。例如:
class MyClass {
public:
static const int x = 10; // 可以在类内初始化
};
对于非整数类型的静态常量成员变量,才需要在类外进行初始化。
C. 若类A的对象a是类B的静态成员变量,则a在 main() 函数调用之前应被初始化。
这是正确的。静态成员变量在程序启动时(main() 函数调用之前)就会被初始化。
D. 静态全局对象、常量全局对象都是在 main 函数调用之前完成初始化,执行完 main 函数后被析构。
这是正确的。全局对象和静态对象的生命周期贯穿整个程序运行期间,它们在 main() 函数调用之前初始化,在 main() 函数结束后析构。