面试题答案
一键面试示例代码
#include <iostream>
// 定义Circle类
class Circle {
private:
// 私有成员变量,半径
double radius;
public:
// 公有构造函数,用于初始化半径
Circle(double r) : radius(r) {}
// 公有成员函数,用于获取圆的面积
double getArea() const {
return 3.14159 * radius * radius;
}
// 公有成员函数,用于获取圆的周长
double getCircumference() const {
return 2 * 3.14159 * radius;
}
};
设计说明
- private属性:
radius
被设为private
,这意味着只有类内部的成员函数可以访问它。这样设计的好处是保护数据的完整性和安全性,防止外部代码随意修改半径值,从而避免出现不合理的数据。 - public属性:构造函数
Circle(double r)
和成员函数getArea()
、getCircumference()
被设为public
。构造函数用于在创建对象时初始化radius
,而getArea()
和getCircumference()
用于向外部提供获取圆的面积和周长的功能。这样设计符合类的设计原则,外部代码只需要通过这些公有接口来操作对象,而不需要关心对象内部数据的存储细节。
通过这样合理使用 public
和 private
访问属性,使得 Circle
类的数据和操作得到了有效的封装,提高了代码的可维护性和可扩展性。在这个简单例子中没有用到 protected
属性,如果后续有继承关系,protected
成员可以被派生类访问,有助于实现继承体系下合理的数据访问控制。