MST

星途 面试题库

面试题:C++ 类定义中的访问控制与成员函数

请解释 C++ 类中 public、private 和 protected 访问修饰符的作用。假设有一个名为 `Circle` 的类,包含半径 `radius` 作为私有成员变量,以及用于设置和获取半径的成员函数。请写出该类的定义以及成员函数的实现。
34.4万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

1. 访问修饰符作用

  • public
    • 被声明为 public 的成员(成员变量和成员函数)在类的外部可以被直接访问。例如,在创建类的对象后,可以通过对象名直接访问 public 成员。这通常用于提供类的外部接口,使得其他代码能够与该类进行交互。
  • private
    • private 成员只能在类的内部被访问。这意味着类的成员函数可以访问 private 成员变量和调用 private 成员函数,但在类的外部,无论是通过对象还是其他方式都无法直接访问 private 成员。private 修饰符用于隐藏类的实现细节,防止外部代码随意修改类的内部状态,从而保证数据的安全性和一致性。
  • protected
    • protected 成员与 private 成员类似,在类的内部可以被访问。不同之处在于,protected 成员在类的派生类(子类)中也可以被访问,而 private 成员在派生类中是不可访问的。protected 修饰符通常用于在基类中定义一些成员,这些成员对于派生类的实现是有用的,但不希望在类的外部被直接访问。

2. Circle 类的定义及成员函数实现

class Circle {
private:
    double radius;

public:
    // 设置半径的函数
    void setRadius(double r) {
        if (r >= 0) {
            radius = r;
        } else {
            // 这里可以选择抛出异常或者进行其他错误处理
            radius = 0;
        }
    }

    // 获取半径的函数
    double getRadius() const {
        return radius;
    }
};