常成员balbal

4.4.1 const 修饰符

定义常对象: 类名 const 对象名 或者 const 类名 对象名;

   !:在定义常对象时必须进行初始化

常引用语法:const 数据类型 & 引用名;

常引用经常被作为参数的形参,并保证实参不被更改

例如:

void display( const int &t)
{
  t=t+5;  //错误,常引用不能改变值
}
int main()
{ 
  int t(10);
  void display(t);
  return 0;
}

4.4.2 常数据成员

类中定义常数据成员格式:

class 类名
{ 
  const 数据类型 数据成员;
};

1)那么任何函数都不能对常数据成员赋值

2)它只能在构造函数的初始化列表中进行初始化

#include <iostream>
//常数据成员实例
using namespace std;
class Point
{
public:
    Point (double new_x,double new_y);
    Point (const Point &p);  //拷贝构造;
    void disp();
private:
    double x;
    const double y;// 常数据成员;
};
Point::Point(double new_x,double new_y):y(new_y)
{
    x=new_x;
}
Point::Point(const Point & p):y(p.y) //初始化列表y;
{
    x=p.x;
}
void Point::disp()
{
    cout<<"x="<<x<<","<<"y="<<y<<endl;
}
int main()
{
    Point p1(1,2),p2(p1);
    p1.disp();
    p2.disp();
    return 0;
}

结果:                                      

       

 错误示例:

C(){x=1 ,y=2}  错误   ;-->  C ( ) : x(1),y(2) 正确

C ( ):(x=1),(y=1) 错误。

4.4.3 常成员函数

常成员函数声明:

class 类名
{
  public: 函数返回值类型函数名 (形参列表)const
   ...
};

常成员函数不可调用非const成员函数,非cons成员函数只可以读取常数据成员,但不可修改。

                                                                 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值