const用法之常对象,常成员函数,常引用

  1. 常对象:const 类名 对象名;
    只能调用常成员函数,或者常数据成员。

  2. 常成员函数:函数名(参数)const;
    相当于函数名(const A*this,参数)。
    用法:一般用于无参数函数当中,例如get(),print()函数中。作用是将当前的对象*this修饰成常对象,常对象的属性不能修改,因而不能在常成员函数中修改数据成员的值。常成员函数的作用一般作为只读函数使用,不修改成员数据的值。利用const函数,也增加程序的可读性。
    只读的常成员函数不能访问可读可写的成员数据。

  3. 普通对象可以调用全部成员函数(包括常成员函数)。

  4. C++为成员函数提供了一个名字为this的指针,这个指针称为自引用指针。 每当创建一个对象时,系统就把this指针初始化为指向该对象 。每当调用一个成员函数时,系统就自动把this指针作为一个隐含的参数传给该函数。不同的对象调用同一个成员函数时,C++编译器将根据成员函数this指针所指向的对象来确定应该引用哪一个对象的数据成员。通常情况下,this指针是隐含存在的,也可以将其显示的表示出来。

  5. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。
    还有就是this指针是一个 const指针 ,不能再程序中修改它或给它赋值;

  6. 当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。

  7. 在某类的const成员函数中,this指针的类型为:const x* const, 这说明this指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作);

eg:

#include <iostream>
using namespace std;
class Coordinate
{

public:
    Coordinate(int x, int y)
    {
        // 设置X,Y的坐标
        m_iX = x;
        m_iY = y;
    }
        // 实现常成员函数
    void printInfo() const
    {
        cout<<"("<<m_iX<<","<<m_iY<<")"<<endl;
    }
public:
    int m_iX;
    int m_iY;
};
int main(void)
{
    const Coordinate coor(3, 5);

    // 创建常指针p
    const Coordinate *p=&coor;
    // 创建常引用c
    const Coordinate &c=coor;

    coor.printInfo();
    p->printInfo();
    c.printInfo();  

    return 0;
}

由上例可知,常指针和常引用可以访问常成员函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值