C++面向对象--第八章类的静态常成员

静态常数据成员

定义:

        static const 数据类型 数据成员名;

初始化:

        方法1:类内直接赋值初始化

        方法2:类外赋值初始化

访问方式:

        1.使用类名::静态常数据成员名访问数据成员。

        2.在对象中使用对象名.静态常数据成员名对象指针->静态常数据成员名进行访问。

注意:无论建立多少个类的对象,都只有一个静态成员的拷贝---实现同一类的不同对象的数据共享

静态常成员函数

定义:

        static 返回类型 静态成员函数名(参数);

注意:

        静态常成员函数在声明和定义时都不需要使用 const 关键字。这是因为静态成员函数与对象无关,它们不访问类中的非静态成员变量,也不会对对象进行修改,因此不需要使用 const 修饰符。

        但是,如果你想在静态常成员函数中访问类的非静态成员变量或调用非静态成员函数,则需要将这些成员变量或函数声明为 const 成员。这样做的目的是确保在静态常成员函数内部不会改变类的状态。

访问方式

        类名::静态成员函数名(实参表);

        对象.静态成员函数名(实参表);

        对象指针->静态成员函数名(实参表);

class MathUtils {
public:
	static const double PI;  // 静态常数据成员

	static double calculateCircleArea(double radius) {
		return PI * radius * radius;
	}

	static double calculateSquareArea(double side) {
		return side * side;
	}
};

const double MathUtils::PI = 3.14159;  // 静态常数据成员的定义和初始化

int main() {
	double circleArea = MathUtils::calculateCircleArea(5.0);  // 调用静态常成员函数
	double squareArea = MathUtils::calculateSquareArea(4.0);  // 调用静态常成员函数

	cout << "Circle Area: " << circleArea << endl;
	cout << "Square Area: " << squareArea << endl;

	cout << "PI: " << MathUtils::PI << endl;  // 访问静态常数据成员
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值