C++常量详解二(常量形参、常量返回值、常量成员函数)
常量形参
在 C++ 中,函数参数也可以定义为常量。这意味着该参数的值不能被修改。我们可以使用 const 关键字在函数参数中声明它为常量。
void func(const int num) {
// 禁止修改 num 的值
}
常量返回值
在 C++ 中,有时我们需要返回一个常量值。这可以通过在函数声明中使用 const 关键字来实现。
const int getValue() {
// 返回一个常量值
return 1;
}
常量成员函数
在 C++ 中,成员函数有许多类型,其中之一是常量成员函数。常量成员函数是指该函数不会修改类中的任何成员变量,也不会调用非常量成员函数。为了在类中声明常量成员函数,可以在函数声明后加 const 关键字。
class MyClass {
public:
void func() const {
// 常量成员函数体
}
};
常量成员函数能够被实例化为常量对象和非常量对象所调用。这是因为常量成员函数不会修改任何成员变量,它只是对成员变量的的访问进行了限制。
示例1
class Circle {
public:
Circle(double r) : radius(r) {}
double getArea() const {
// 常量成员函数,不修改成员变量的值
return PI * radius * radius;
}
private:
double radius;
const double PI = 3.14; // 常量
};
int main() {
const Circle c(5.0);
cout << "面积:" << c.getArea() << endl;
return 0;
}
在上述例子中,我们定义了一个 Circle
类,其中 getArea()
函数是一个常量成员函数。它不修改 Circle
类中的任何成员变量。然后我们创建了一个名为 c
的常量对象,并调用它的 getArea()
函数。
示例2
class MyClass {
public:
void func() const {
// 常量成员函数体
}
void func2() {
// 非常量成员函数体
}
};
int main() {
const MyClass c;
c.func(); // 可以调用常量成员函数
c.func2(); // 编译错误,常量对象不能调用非常量成员函数
return 0;
}
在这个例子中,我们定义了一个 MyClass
类,其中包含一个常量成员函数和一个非常量成员函数。然后我们创建了一个名为 c
的常量对象,我们可以使用 c.func()
调用常量成员函数,但是在尝试调用非常量成员函数 c.func2()
时,会发生编译错误。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++常量详解二(常量形参,常量返回值,常量成员函数) - Python技术站