C/C++ 中的内联、常量和静态
内容提要
静态变量在函数内可跨调用保持值,仅对当前源文件可见。const修饰符表示变量不可修改,但函数内可修改一次。C++中的静态成员与类实例无关,const成员函数不能修改数据。
关键要点
-
静态变量在函数内可跨调用保持值,仅对当前源文件可见。
-
const修饰符表示变量不可修改,但函数内可修改一次。
-
C++中的静态成员与类实例无关,所有类实例共享静态成员。
-
静态成员函数不与任何对象关联,不能是虚函数或const函数。
-
const成员函数不能修改类的数据成员。
-
const静态成员函数返回的值是常量,不能修改。
-
const指针和常量指针的使用规则,不能通过指针修改数据。
-
constexpr在编译时计算并用作字面量。
-
static关键字在函数内标记的变量在函数调用间可见。
-
static关键字在函数外部标记的变量仅在当前源文件可见。
延伸解读
静态变量的作用与限制
静态变量在函数内部的作用是保持其值在多次调用之间不变,这对于需要记忆状态的函数非常有用。然而,静态变量的可见性仅限于当前源文件,这意味着它们不能被其他文件访问,这在模块化编程中可能会造成限制。
const修饰符的使用注意事项
const修饰符在C/C++中用于声明不可修改的变量,但在函数内部,const变量可以被修改一次。这种特性可能导致代码的可读性下降,开发者需要特别注意,确保在使用const时理解其作用范围和限制。
C++中的静态成员与实例的关系
C++中的静态成员与类的实例无关,所有实例共享同一静态成员。这意味着静态成员的修改会影响所有实例,因此在设计类时需要谨慎考虑静态成员的使用,以避免意外的状态共享问题。
延伸问答
C++中的静态变量有什么特点?
静态变量在函数内可跨调用保持值,仅对当前源文件可见。
const修饰符在C++中有什么作用?
const修饰符表示变量不可修改,但在函数内可以修改一次。
C++中的静态成员与类实例有什么关系?
C++中的静态成员与类实例无关,所有类实例共享静态成员。
什么是const成员函数,它有什么限制?
const成员函数不能修改类的数据成员。
C++中的constexpr有什么特点?
constexpr在编译时计算并用作字面量。
static关键字在函数外部的作用是什么?
在函数外部,static关键字标记的变量仅在当前源文件可见。