面向对象的程序设计-学习笔记-20-常量对象

本文通过C++代码示例介绍了如何使用const关键字定义常量对象、常量成员函数及常量数据成员,并展示了如何操作这些常量元素而不改变其值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
常量对象和常量成员
可以用const来修饰常量对象,常量成员函数,常量数据成员。
常量对象的使用
*/
#include<iostream>
using namespace std;
class point
{
int x,y;
public:
point(){x=0;y=0;}//若不小心在函数体内写成这样:int x=0;int y=0;则会报错的
point(int a,int b){x=a;y=b;}
int read_x() const {return x;}//常量成员函数的定义格式:<返回类型> 成员函数名(参数表) const
int read_y() const{return y;}
void move(int x_off,int y_off);
void show() const;//常量成员函数
void show();//一般的成员函数
};
void point::move(int x_off,int y_off)
{
x+=x_off;y+=y_off;
};
void point::show() const
{
cout<<"常量函数被调用!\n";
}
void point::show()//调用一般的成员函数
{
cout<<"一般成员函数被调用!"<<endl;
}
void main()
{

/*定义常量对象的格式:<类名> const 对象名列表;或者const <类名> 对象名列表*/
point const origin,center(60,120);//定义两常量对象,坐标原点和圆心坐标
/*常量对象在定义的同时初始化后再也不能改变它们的数据成员值*/
point p1(30,50),p2(40,80);
cout<<"(1)常量对象:"<<endl;
cout<<"origin("<<origin.read_x()<<","<<origin.read_y()<<")\n";
//cout<<"(2)常量对象:"<<endl;
cout<<"center("<<center.read_x()<<","<<center.read_y()<<")\n";
cout<<"(2)移动之前:"<<endl;
cout<<"p1("<<p1.read_x()<<","<<p1.read_y()<<")\n";
cout<<"p2("<<p2.read_x()<<","<<p2.read_y()<<")\n";
cout<<"(3)移动之后:"<<endl;
p1.move(10,-10);p2.move(60,20);
cout<<"p1("<<p1.read_x()<<","<<p1.read_y()<<")\n";
cout<<"p2("<<p2.read_x()<<","<<p2.read_y()<<")\n";
cout<<"(4)调用一般的成员函数:"<<endl;
cout<<"常量对象调用:";
center.show();//常量对象调用重载同名常量成员函数
cout<<"一般对象调用:";
p1.show();//普通对象p1调用重载同名常量成员函数
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值