const 数据共享与保护

常数据成员

#include <iostream>
using namespace std;
class A
{
public:
	A(int i);
	void print();
private:
	const int a;
	static const int b;//静态常数据成员
};
const int A::b=10;//静态常数据成员在类外说明和初始化
//常数据成员只能通过初始化列表来获得初值
A::A(int i):a(i){}
void A::print()
{
	cout<<a<<":"<<b<<endl;
}
int main()
{
	//建立对象a,b,并以100,0为初值通过构造函数的初始化列表给对象的常数据成员赋初值
	A a1(100),a2(0);
	a1.print();
	a2.print();
	return 0;
}
常引用

#include <iostream>
#include <cmath>
using namespace std;
class Point
{
public:
	Point(int x=0,int y=0):x(x),y(y){};
	int getX(){return x;}
	int getY(){return y;}
	friend float dist(const Point& p1,const Point &p2);
private:
	int x,y;
};
float dist(const Point &p1,const Point &p2)//常引用做形参
{
	//不用修改传入的值,防止意外修改
	//在函数中无须修改其值的参数,不宜用普通引用,常对象无法传入
	//传值耗时,传引用快
	double x=p1.x-p2.x;
	double y=p1.y-p2.y;
	return static_cast<float>(sqrt(x*x+y*y));
}
int main()
{
	const Point myp1(1,1),myp2(4,5);
	cout<<dist(myp1,myp2)<<endl;
	return 0;
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值