010--C++类的常成员变量const(最优)

简介:类的常成员分为类的常成员对象,类的常成员变量,类的常成员函数。

  • 类的常成员对象只能调用类的常成员函数,不能调用不是类的常成员函数。
  • 类的常成员变量必须使用类的成员初始化列表来初始化。
  • const int getAge();只是普通的类成员函数,而int  getAge()const才是类的常成员函数。所以,书写一定要注意区分。

代码学习:(简单想想,其实const 的使用,就是你所要定义的数据是否需要改变,如果不想让数据被改变,那么就cosnt。)

//常量成员:类的常量数据成员,类的常量函数成员
#include<iostream>
using namespace std;
class MyStu{
	int age;//对于一个学生,它的年龄会随着时间改变,
	const char sex;//但是,它的性别是不可改变的。所以在定义性别时要加上const
	//类的常量数据成员
public:
	//类的常量初始化成员必须使用类的成员初始化列表。否则报错。
	MyStu() :sex('w'){
		age = 0;
	}
	MyStu(char s):sex(s){
		age = 0;
	}
	void init(int age){
		this->age = age;
	}
	//const int getAge(){ return age; }//不是类的常量函数成员,只是一个普通的类成员函数,
	//这个函数的返回值是一个const int
	int getSex()const{ return sex; }
	int getAge()const{ return age; }//类的常量函数成员
	~MyStu(){

	}
};
const int add(int a,int b){
	return a + b;
}
int main(){
	const int a=10;//普通的常量变量必须初始化赋值
	cout << a << endl;
	//a = 11;不能改动常成员变量的值
	cout << "----------------------" << endl;
	const int c = add(1,2);//普通常量函数使用这种写法,而不是在函数前加const;
	cout << c << endl;
	cout << "----------------------" << endl;
	MyStu s(23);//调用带参构造
	cout << s.getAge() << endl;
	cout << "----------------------" << endl;
	//当对象未被定义为一个常量对象时
	cout << "当对象未被定义为一个常量对象时:" << endl;
	MyStu s1;
	s1.init(23);
	cout <<s1.getAge()<< endl;
	cout << "----------------------" << endl;
	//当对象被定义为一个常量对象时
	cout << "当对象被定义为一个常量对象时:" << endl;
	const MyStu s2;
	//s2.init(23);//常量对象是无法调用非常量函数成员的
	cout << s2.getAge() << endl;//常量对象只能调用常量函数成员
	return 0;
}

结果:


每天学习有点烦,很多时候我都不想学了,可怜呀·········兄弟们·········

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码字界陈冠希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值