让我来详细讲解C++类中const成员变量的赋值方法。
什么是const成员变量
在C++类中,可以使用const
关键字定义类的成员变量。const
关键字用于指定成员变量的值一旦被初始化就不可改变。这意味着在类的生命周期内,const
成员变量的值不会被修改。
例如,我们可以定义一个类Person
,其中包含一个const
成员变量age
:
class Person {
public:
Person(int a): age(a) {}
private:
const int age;
};
在上面的代码中,const
成员变量age
只能在构造函数中初始化,以后就不能再修改。
如何初始化const成员变量
在定义const成员变量时,必须在类的构造函数中进行初始化,否则编译器会报错。因此,在类的构造函数中初始化const
成员变量是非常重要的。
有两种方式可以为const
成员变量赋值:在构造函数的初始化列表中赋值,或者使用类的构造函数来赋值。
使用构造函数初始化列表初始化const成员变量
构造函数初始化列表是指在构造函数的参数之后使用冒号来初始化成员变量的方式。对于const
成员变量,只能使用初始化列表进行初始化。
下面是一个例子:
class MyClass {
public:
MyClass(int a, int b): m_constMember(a), m_member(b) {}
private:
const int m_constMember;
int m_member;
};
在上面的例子中,m_constMember
是一个const
成员变量,使用冒号在构造函数中进行初始化。
构造函数中初始化const成员变量
如果不能在构造函数的初始化列表中进行初始化,那么可以使用构造函数来初始化const
成员变量。
class MyClass {
public:
MyClass() { m_constMember = 10; }
private:
const int m_constMember;
};
上面的代码中,m_constMember
是一个const
成员变量,在构造函数中进行初始化。需要注意的是,这种方式只适用于默认构造函数,其他构造函数必须使用初始化列表进行初始化。
示例
现在来看两个示例,分别介绍上述两种初始化const
成员变量的方法。
示例1:使用构造函数初始化列表初始化const成员变量
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass(int a, int b): m_constMember(a), m_member(b) {}
void print() {
cout << "const member: " << m_constMember << ", member: " << m_member << endl;
}
private:
const int m_constMember;
int m_member;
};
int main()
{
MyClass obj(10, 20);
obj.print();
return 0;
}
在上面的示例中,我们定义了一个名为MyClass
的类,其中包含两个成员变量,一个是const
成员变量m_constMember
,一个是普通成员变量m_member
。我们在MyClass
的构造函数中使用了初始化列表,对两个成员变量进行初始化。
在main函数中,我们创建了一个MyClass
对象obj
,并使用print()
函数输出对象的成员变量值。运行程序,输出结果如下:
const member: 10, member: 20
示例2:在构造函数中初始化const成员变量
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() { m_constMember = 10; }
void print() {
cout << "const member: " << m_constMember << endl;
}
private:
const int m_constMember;
};
int main()
{
MyClass obj;
obj.print();
return 0;
}
在上面的示例中,我们定义了一个名为MyClass
的类,其中包含了一个const
成员变量m_constMember
。我们在MyClass
的构造函数中对m_constMember
进行了初始化。
在main()
函数中,我们创建了一个MyClass
对象obj
,并使用print()
函数输出对象的成员变量值。运行程序,输出结果如下:
const member: 10
综上所述,以上就是关于C++类中const成员变量的赋值方法的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++ 类中const成员变量的赋值方法 - Python技术站