注册 登录
编程论坛 C++教室

指向对象的常指针

hmsabc 发布于 2010-10-02 09:59, 698 次点击
程序代码:
//指向对象的常指针

#include <iostream>
using namespace std;

class Time
{
public:
    void set();
    void show();
    Time();
    Time(int,int,int);
private:
    int hour;
    int minute;
    int second;
};

void Time::set()
{
    cout<<"please enter current time: ";
    cin>>hour>>minute>>second;
}

void Time::show()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}

Time::Time()
{
    hour=0;
    minute=0;
    second=0;
}

Time::Time(int h,int m,int s):hour(h),minute(m),second(s){}

int main()
{
    Time ms1;
    ms1.show();

    Time ms2(12,12,12);
    ms2.show();

    Time ms3;
    ms3.set();
    ms3.show();

    Time * const ptMs=&ms3;          //常指针必须在定义时初始化
    ptMs->set();                     //使用常指针调用类公有成员函数 set
    ptMs->show();                    //使用常指针调用类公有成员函数 show

    return 0;
}
   
/*常指针使得指针变量固定地与一个对象相联系。往往用常指针作为函数的形参,目的是不允许
在函数执行过程中改变指针变量的值,使其始终指向原来的对象。
*/
本人初学,对常指针很陌生,哪位仁兄能举个常指针作形参的例子?
1 回复
#2
聋眼睛瞎耳朵2010-10-02 17:00
常指针的典型应用是数组作为函数的参数。数组名表示常量指针,把它作为函数的参数时,是不允许修改它代表的地址的,否则整个数组的内存区域都可能丢失,不过数组中元素的值可以修改。
用数组名作参数,你应该经常做吧,那就是常指针的应用。
1