010--C++类的常成员变量const(最优)
原创
©著作权归作者所有:来自51CTO博客作者西南第一深情李登门的原创作品,请联系作者获取转载授权,否则将追究法律责任
简介:类的常成员分为类的常成员对象,类的常成员变量,类的常成员函数。
- 类的常成员对象只能调用类的常成员函数,不能调用不是类的常成员函数。
- 类的常成员变量必须使用类的成员初始化列表来初始化。
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;
}
结果:
每天学习有点烦,很多时候我都不想学了,可怜呀·········兄弟们·········