【类.静态成员】

声明静态成员

在成员的声明前加static。可以是public或private的。
注意:静态成员函数:①非const②不能显(隐)式使用this指针

定义静态成员

一般来说。我们必须在类的外部定义和初始化静态成员。
静态成员定义在任何函数之外,故它存在于整个生命周期
在类内初始化的情况:静态成员提供const整数类型的类内初始值。
注意:若静态成员仅仅是为了做字面值常量的替换,可以在类外不做定义。否则,一般在类外还需再定义一次(例如需要该const变量做引用绑定的变量或指针指向的变量)。

使用静态成员

  1. 通过类使用。
r = Account::rate()//Account是一个类
  1. 通过对象
r = ac1.rate()   //ac1为对象或引用
r = ac2->rate()    //ac2为指向类的指针
  1. 直接使用
class Account{
public:
	void cal(){amount+= amount*interest}
private:
	static double interest;
}

直接访问静态成员

静态成员的特殊应用场景

  1. 对于不完全类型的数据成员可以为静态的
  2. 默认实参可以为静态的
静态成员遵循的其他成员所遵循的访问限制,除了 D. 静态数据成员初始化。静态成员是指在中用 static 关键字声明的成员,包括静态数据成员和静态成员函数。静态数据成员是所有对象共享的,只有一份拷贝,静态成员函数不依赖于任何对象,可以直接使用名调用。 静态成员的访问权限与普通成员一样,遵循的访问限制。例如,私有静态数据成员和私有静态成员函数只能在内部访问,公有静态数据成员和公有静态成员函数可以在的任何地方访问。例如: ```c++ class MyClass { public: // 公有静态数据成员和静态成员函数 static int count; static void printCount() { cout << "count = " << count << endl; } private: // 私有静态数据成员和静态成员函数 static int num; static void printNum() { cout << "num = " << num << endl; } }; int MyClass::count = 0; // 静态数据成员初始化,可以在外部进行 int MyClass::num = 0; // 静态数据成员初始化,可以在外部进行 int main() { MyClass::count++; // 使用名访问公有静态数据成员 MyClass::printCount(); // 使用名调用公有静态成员函数 // MyClass::num++; // 错误:不能访问私有静态数据成员 // MyClass::printNum(); // 错误:不能调用私有静态成员函数 return 0; } ``` 在上面的例子中,定义了一个 `MyClass` ,包括公有静态数据成员和静态成员函数、私有静态数据成员和静态成员函数。公有静态数据成员和静态成员函数可以在的任何地方访问,私有静态数据成员和静态成员函数只能在内部访问。静态数据成员的初始化可以在外部进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值