c++ const and static const

#include <iostream>
using namespace std;
class A
{
public:
    A(int i);
    void print();
    const int &r;

private:
    const int a;
    static const int b; // 静态常数据成员
};

const int A::b = 10;
A::A(int i) : a(i), r(a) {}
void A::print()
{
    cout << a << ": " << b << ": " << r << endl;
}
int main()
{
    /*建立对象a1和a2,并以100和0作为初值,分别调用构造函数,通过构造函数的初始化列表给对象的常数据成员赋初值*/
    A a1(100), a2(0);
    a1.print();
    a2.print();
    return 0;
}
 
 
  • const int a:常数据成员,每个对象都有自己的副本,必须在构造函数初始化列表中初始化
  • static const int b:静态常数据成员,所有对象共享同一个副本,需要在类外定义
  • const int &r:常引用成员,必须在构造函数初始化列表中绑定到某个对象

 

重要概念说明

  • 常数据成员:每个对象都有独立的副本,必须通过初始化列表初始化
  • 静态常数据成员:所有对象共享,值始终为10
  • 常引用成员:r始终引用同一对象的成员a,所以r的值等于a的值

 

 

posted @ 2025-06-14 22:57  ChuckLu  阅读(8)  评论(0)    收藏  举报