C++ const 总结

来源:互联网 发布:手机淘宝历史版本好用 编辑:程序博客网 时间:2024/05/16 18:35

主要探索在类中使用:

包括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;    conststring _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;    conststring _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;    conststring _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;}

运行结果: