//const成员函数
class TestConstMemberFunc{
public:
int x,y;
int getX(){
return x;
}
int getXconst() const{//加上cosnt,表明该函数不改变类内的变量,因而可以被cosnt的TestConstMemberFunc调用
//x=1;Error//error: 'x' cannot be modified because it is being accessed through a const object
return x;
}
int cmp(TestConstMemberFunc tc2) const{//tc2不是const的,因为是经过复制的
tc2.x=1;
return x>tc2.x;
}
int cmpConstReference(TestConstMemberFunc& tc2) const{//tc2也是const的,因为此处为reference
tc2.x=1;
return x>tc2.x;
}
};
void test_constMemberFunc(){
const TestConstMemberFunc t,t2;
//t.getX();//error: cosnt TestConstMemberFunc不能调用非const的成员函数
t.getXconst();
t.cmp(t2);//ok
//t.cmpConstReference(t2);//Error: cannot convert parameter 1 from 'const TestConstMemberFunc' to 'TestConstMemberFunc &'
}
分享到:
相关推荐
const成员函数、初始化列表、static成员1
C++ 中const对象与const成员函数的实例详解 const对象只能调用const成员函数: #include using namespace std; class A { public: void fun()const { cout<<const 成员函数!<<endl; } void fun()...
以下的每一点会给出代码示例说明 一、c++成员函数后的const有以下特点: ... 二、另外,const对象与const成员函数相关的内容 1.由const 类名构造的对象只能调用 const方法 2.const对象的构
徐彤老师耗时三年倾心制作,专业录制,通俗,细致的讲解了C++ 编程从入门到高级
const 修饰成员函数
比较好的一本学习c数据结构,算法的书,书的内容丰富。有许多代码案例,通俗易懂
构造函数和析构函数
该文件是做一个简单图书管理系统项目的框架的源程序文件,用c++做好了框架,有部分的功能,其他功能需要自己添加。
Const,Const函数,Const变量,函数后面的Const ,Const成员函数,c++仅供参考
(3)常成员函数不能更新类的成员变量,也不能调用该类中没有用const修饰的成员函数,只能调用常成员函数。 (4)非常量对象也可以调用常成员函数,但是如果有重载的非常成员函数则会调用非常成员函数。 重载看例子...
C++基础,从入门到类与对象的 const修饰成员函数
先明确几个概念: 1. 常对象只能调用常成员函数。 2. 普通对象可以调用全部成员函数。...在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改的(即不能对这种
2. const:定义常成员,包括const数据成员和const成员函数,const数据成员必须,也只能通过构造函数的初始化列表进行初始化,const成员函数只能访问类的成员,不能进行修改,如果需要修改,则引入下面的mutable...
对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法: A& perator=(const A& a); void fun0(const A* a ); void fun1( ) const; // fun1( ) 为类成员函数 const A fun2( ); ...
编完这个矩阵类感觉收获蛮大的,关于继承与派生以前只知道原理,这次把它实现了。...在自己编的时候遇到了一些问题,比如对const使用的问题,忽略了类的const引用只能访问const成员函数等。但最后都解决了
为了保证const对象的常量性,编译器须区分不安全与安全的成员函数(即区分试图修改类对象与不修改类对象的函数)。例如: const Screen blankScreen; blankScreen.display(); // 对象的读操作 blankScre
在头文件的类的定义中定义了一个const成员变量c++ 规则: 1、类定义中不能进行初始化,因为头文件中类的定义只是一个声明,并没有分配真正空间,因此变量是不存在的,因此是不能赋值的。 2、const 定义的变量是不能...
对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法: A& perator=(const A& a); void fun0(const A* a ); void fun1( ) const; // fun1( ) 为类成员函数 const A fun2( ); ...
类Class的用法 类的构造函数和析构函数 const成员函数 this指针 对象数组