`

const 成员函数

    博客分类:
  • C++
阅读更多
//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 成员函数、初始化列表、static 成员变量 C++ 编程语言中,const 成员函数、初始化列表、static 成员变量是三个重要的概念,它们在编程中发挥着重要的作用。 const 成员函数 在 C++ 中,...

    const修饰类的成员函数

    void f() const { // const成员函数 cout << "const" ; } }; int main() { A a; // 非const对象 const A ca; // const对象 a.f(); // 调用非const成员函数 a.f(); // 重复调用,编译器可以根据上下文决定...

    const 修饰成员函数.zip

    // 声明一个const成员函数 }; void MyClass::foo() const { // 在这个函数体内,不能修改 MyClass 的数据成员 } ``` `const`成员函数可以被`const`对象调用,因为它们不会改变对象的状态。这对于读取对象数据而不...

    C++ 中const对象与const成员函数的实例详解

    C++ 中const对象与const成员函数的实例详解 const对象只能调用const成员函数: #include using namespace std; class A { public: void fun()const { cout<<const 成员函数!<<endl; } void fun()...

    C++函数后加const的意义 pdf

    ### C++中的Const成员函数详解 #### 一、Const成员函数的基本概念 在C++编程中,`const`关键字有着非常重要的作用。特别是在类的成员函数中,`const`关键字可以用来表明某个成员函数不会修改类的数据成员。这种...

    Const,Const函数,Const变量,函数后面的Const.txt

    // const成员函数 private: int m_num; }; ``` 在这里,`GetCount()`被声明为`const`成员函数,这意味着它不应该修改栈的状态,包括`m_num`等私有成员变量。 - **注意事项**: - `const`成员函数不能修改...

    普通成员函数、类成员函数和类静态成员函数实例(VS2010)

    在const成员函数中,`this`指针被隐式地声明为常量类型,防止修改对象。例如: ```cpp class MyClass { public: void constMemberFunction() const { // 只能读取成员变量,不能修改 std::cout ; } private...

    使用const提高函数的健壮性

    对于类成员函数,const成员函数表明该函数不会修改对象的状态(即不修改对象的成员变量)。如果一个const成员函数尝试修改对象的成员变量,或者调用一个非常量成员函数,编译器将报错。这可以确保在不改变对象状态的...

    C++成员函数后的const

    以下的每一点会给出代码示例说明  一、c++成员函数后的const有以下特点: ...  二、另外,const对象与const成员函数相关的内容  1.由const 类名构造的对象只能调用 const方法  2.const对象的构

    徐彤教程-C++编程const与static第0263讲:实例03-const成员函数

    徐彤老师耗时三年倾心制作,专业录制,通俗,细致的讲解了C++ 编程从入门到高级

    Const资料整理

    解决该错误的方法是,在 Const 成员函数中加上 Mutable 修饰符,以便 Const 成员函数可以修改对象的状态。 例如:`mutable int x;` 6. 使用 Const 的优点 使用 Const 可以提高程序的健壮性,防止意外的变动。...

    C++的const类成员函数

    4. **const成员函数与非const成员函数的重载** - 同一函数名可以有const和非const两个版本,它们具有相同的参数列表,根据对象是否是const来决定调用哪个版本。如`class Screen`的`get`函数,对const对象调用`get`...

    C++静态成员函数与静态成员变量小结

    5. 静态数据成员的值在const成员函数中可以被合法的改变。 6. 类的静态数据成员有两种访问形式:<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名> 7. 静态变量保存在全局数据区,而不是保存在栈中,只...

    C++静态成员函数小结

    * 静态数据成员的值在const成员函数中可以被合法地改变。 例如: class base{ public: static int _num; }; int base::_num = 0; main(){ base a; derived b; a._num++; cout ; b._num++; cout ; } 结果...

    4.1C++之成员函数调用共3页.pdf.zip

    - const成员函数:声明函数不会修改对象的状态,允许对const对象进行操作。 - 虚函数与多态:虚函数使得基类指针或引用可以调用派生类的重写版本,实现动态绑定和多态性。 【标签】"4.1C++之成员函数调用共3页" ...

    C++关于Const使用

    #### 二、Const成员函数 在给定的例子中,`int getx() const { return x; };` 是一个典型的`const`成员函数的示例。这里的`const`关键字有两个主要的作用: 1. **确保成员函数不修改任何数据成员**: - 当一个...

    CONST用法

    // 编译错误:试图调用非const成员函数 // return m_num; // } ``` 通过以上介绍可以看出,`const`关键字在C++编程中扮演着至关重要的角色。正确使用`const`不仅可以提高代码的安全性和可维护性,还能优化程序性能...

    C++ const使用详解

    同时,const 成员函数不能更新对象的数据成员,也不能调用该类中没有用 const 修饰的成员函数。 五、使用 const 的一些建议 1. 要大胆的使用 const,这将给你带来无尽的益处,但前提是你必须搞清楚原委。 2. 要...

    C++静态成员函数小结.doc

    5. **const修饰**:静态数据成员在const成员函数中可以被合法地修改,因为const只限制了对象的状态改变,而不是类的静态数据成员。 6. **初始化**:静态数组的初始化需要遵循C++的数组初始化规则,通常在类外完成。...

Global site tag (gtag.js) - Google Analytics