C++ 之 常量成员函数】的更多相关文章

类的常量成员函数 (const member function), 可以读取类的数据成员,但是不能修改. 1  声明 1.1  const 关键字 在参数列表后,加 const 关键字,声明为常量成员函数 (const member function),表明其不被允许修改类的数据成员 下面 Date 类,分别以年.月.日的形式来表示日期 (注意:年月日的声明顺序) class Date { public: int year() const; int month() const { return…
http://blog.csdn.net/gmstart/article/details/7046140 在C++的类定义里面,可以看到类似下面的定义: 01 class List { 02 private: 03      Node * p_head; 04      int length; 05      …… 06 Public: 07      int GetLength () const; 08      bool GetNodeInfo(const int index,Node &…
#include <iostream> using namespace std; class MyClass { public: int x; static int n; const int y; MyClass(int val) : x(val), y() { } // int get() // { // return x; // } //int get() const {return x;} // const member function //const int& get() {…
01 常量对象 如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字 class CTest { public: void SetValue() {} private: int m_value; }; const CTest obj; // 常量对象 02 常量成员函数 在类的成员函数后面可以加const关键字,则该成员函数成为常量成员函数. 在常量成员函数中不能修改成员变量的值(静态成员变量除外); 也不能调用同类的 非 常量成员函数(静态成员函数除外) class S…
C++中常量成员函数的含义 本文内容来源:<C++必知必会> 使用常量成员函数可以改变对象的逻辑状态,虽然对象的物理状态没有发生改变.考虑如下代码,它定义了一个类X: class X{ public: X():buffer_(0),isComputed_(false){} //... void setBuffer(){ int *tmp = new int[MAX]; delete [] buffer_; buffer_ = tmp; }//setBuffer void modifyBuffe…
mutable的使用场景: 可以在一个const的对象里面,解除对部分字段的const限制.也可以用在const成员函数里面. 对于const与否,一般会调用不同版本的函数: 而对于二元操作符,如果用成员函数定义,那么加上const修饰符,就可以使得左侧也是const.…
这一点与指向成员的指针类似,其实现可能更加复杂,因为成员函数同时还存在虚拟函数,需要动态绑定执行动作.当然这种属性是属于函数本身的,此处表达的是指针不涉及函数的属性问题. 1: class shape 2: { 3: public: 4: // void moveTo(point newLocation); 5: bool validate(); 6: //… 7: } 8:   9: class circle:: public shape 10: { 11: public: 12: //… 1…
一些成员函数改变对象,一些成员函数不改变对象. 例如: int Point::GetY() { return yVal; } 这个函数被调用时,不改变Point对象,而下面的函数改变Point对象: void Point:: SetPt (int x, int y) { xVal=x; yVal=y; } 为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明: class Point { public: int GetX() const; int GetY()…
一些成员函数改变对象,一些成员函数不改变对象. 例如:  int Point::GetY() { return yVal; }  这个函数被调用时,不改变Point对象,而下面的函数改变Point对象:  void Point:: SetPt (int x, int y) { xVal=x; yVal=y; }  为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明:   class Point {  public: int GetX() const; int…
C++ Primer 第07章 类 7.1.2 ​Sales_data类的定义如下: #ifndef SALES_DATA_H #define SALES_DATA_H #include <string> #include <iostream> class Sales_data { public: std::string isbn() const {return bookNo;} Sales_data& combine(const Sales_data&); dou…