主要探索在类中使用:
包括const 对象,const数据成员,const成员函数,对象的常引用。
首先是const对象:
1 常对象必须有初值
2 任何场所常对象所有成员值不能被改变
3 不能调用该对象的非const型的成员函数,为了防止修改数据成员的值
具体使用:
#include <iostream>
#include <string>
using namespace std;
class student
{
private:
int _num;
string _name;
public :
student(int num,string name):_num(num),_name(name){}
void get() const{ //定义为const成员函数
cout<<"num :"<<this->_num<<endl
<<"name :"<<this->_name<<endl;
}
};
int main(){
const student stu(100,"buyingfei"); //定义为常对象
stu.get();
return 0;
}
运行结果:
const数据成员:
只能通过初始化列表对它进行赋值
具体实例:
#include <iostream>
#include <string>
using namespace std;
class student
{
private:
int _num;
const string _name; //定义const数据成员
public :
student(int,string); //声明构造函数
void get() {
cout<<"num :"<<this->_num<<endl
<<"name :"<<this->_name<<endl;
}
};
student::student(int num,string name):_num(num),_name(name){} //定义构造函数 常数据成员必须通过初试化列表进行赋值
int main(){
student stu(100,"buyingfei");
stu.get();
return 0;
}
运行结果:
常成员函数:
只使用本类中数据成员,不能修改数据成员。const是函数类型的一部分,在声明和定义时都加上const关键字,调用时则不需要。
const数据成员既能被const成员函数调用,也能被非const成员函数调用
具体使用:
#include <iostream>
#include <string>
using namespace std;
class student
{
private:
int _num;
const string _name;
public :
student(int,string);
void get() const{
cout<<"num :"<<this->_num<<endl
<<"name :"<<this->_name<<endl;
}
};
student::student(int num,string name):_num(num),_name(name){}
int main(){
student stu(100,"buyingfei");
stu.get();
return 0;
}
运行将结果:
const常引用:
如果不希望在实参的值,将引用定义为const引用,在调用函数时不需要建立实参的拷贝,用常引用可以提高程序的效率
使用示例:
#include <iostream>
#include <string>
using namespace std;
class student
{
private:
int _num;
const string _name;
public :
student(int,string);
void get(const student &stu) const{
// stu._name="bufeifei";
cout<<"num :"<<stu._num<<endl
<<"name :"<<stu._name<<endl;
}
};
student::student(int num,string name):_num(num),_name(name){}
int main(){
student stu(100,"buyingfei"),stu1(120,"buyafei");
stu.get(stu1);
return 0;
}
运行结果: