12.6

本节大意
介绍了面向对象编程中的static机制

细节摘录
1. 使用static的好处:a 避免和其他全局事物产生命名冲突 b 封装性 c 可读性
2. 访问方式   类::static对象名
3. static函数的限制 a 成员不能用this b 不能声明为const,也没必要声明。 c 不能声明为虚函数
4. static数据成员必须在类的外部定义一次且只能定义一次
5. 对于const成员可以在声明时初始化,但还是要在外部定义一次。
6. static成员变量可以用作默认实参,可以在对象中定义自身类型。

课后习题
1. 就是某个类的所有对象共享的成员,优点见细节摘录1,缺点是使用起来有不少限制,其他参见细节摘录。
2. 略
3.4.5
#include <iostream>

using namespace std;

class Foo {
private:
	int a;
public:
	Foo(int a);
	int GetNum();
};

Foo :: Foo(int a) {
	this->a = a;
}

int Foo :: GetNum() {
	return a;
}

class Bar {
private:
	static int b;
	static Foo c;
public:
	Bar();
	Foo FooVal();
	int callsFooVal();
};

// 标准声明加定义格式
int Bar :: b=0;
Foo Bar :: c(0);

Bar :: Bar() {
}

Foo Bar :: FooVal() {
	b++;
	return c;
}

int Bar :: callsFooVal() {
	return b;
}

int main()
{
	Bar b;

	cout << b.FooVal().GetNum() << endl;
	b.FooVal();
	cout << b.callsFooVal() << endl;

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值