卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章51283本站已运行31125

c++中const和static的区别

c++kquote>const 修饰符表示常量,值不可修改;static 修饰符指示变量的生存期和作用域。const 修饰的数据成员在初始化后不可修改,static 修饰的变量在程序启动时初始化,在程序结束时销毁,即使没有活动对象也会存在,并且可以跨函数访问。const 修饰局部变量必须声明时初始化,static 修饰的局部变量可以稍后初始化。const 修饰类成员变量必须在构造函数或初始化列表中初始化,static 修饰的类成员变量可以在类外部初始化。

c++中const和static的区别

c++ 中 const 和 static 的区别

简单明了的区别:

  • const 修饰符表示一个常量,它的值在程序运行期间不能被修改。
  • static 修饰符指示一个变量的生存期和作用域。

详细解释:

const 修饰符:

  • const 用于声明常量,即不能更改值的变量。
  • const 修饰的数据成员只能在类构造函数或初始化列表中初始化。
  • const 变量在程序运行期间不能被修改,否则会产生编译错误。
  • const 可以应用于对象、指针或引用。

static 修饰符:

  • static 用于声明静态变量,即在整个程序中都存在的变量。
  • 静态变量在程序启动时进行初始化,并且在程序结束时销毁。
  • 静态变量即使在没有活动对象时也会存在,并且可以跨函数访问。
  • static 可以应用于全局变量、类成员变量和局部变量。

其他区别:

  • const 修饰的数据成员是只读的,而 static 修饰的数据成员可以读写。
  • const 修饰的局部变量必须在声明时初始化,而 static 修饰的局部变量可以稍后初始化。
  • const 修饰的类成员变量必须在构造函数或初始化列表中初始化,而 static 修饰的类成员变量可以在类外部初始化。

示例:

<code class="cpp">// const 常量
const int MY_CONSTANT = 10;

// static 全局变量
static int global_count;

// static 类成员变量
class MyClass {
public:
    static int static_member;
};

在上述示例中:

  • MY_CONSTANT 是一个常量,一旦初始化就无法更改。
  • global_count 是一个静态全局变量,在整个程序中都存在。
  • MyClass::static_member 是一个静态类成员变量,可以在类外部访问。
卓越飞翔博客
上一篇: 函数重写最佳实践:发挥继承潜能,提升代码可维护性
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏