精华内容
下载资源
问答
  • C++ 中const对象与const成员函数的实例详解 const对象只能调用const成员函数: #include using namespace std; class A { public: void fun()const { cout<<const 成员函数!<<endl; } void fun()...
  • const对象

    千次阅读 2018-07-29 18:50:55
    1、const对象不可以引用非const成员函数,只可以调用const成员函数。 2、非const对象既可以调用const成员函数,也可以调用非const成员函数 3、const成员函数不可以改变非multable数据的值。 #include &lt;...

    总结:
    1、const对象不可以引用非const成员函数,只可以调用const成员函数。
    2、非const对象既可以调用const成员函数,也可以调用非const成员函数
    3、const成员函数不可以改变非multable数据的值。

    #include <iostream>
    
    using namespace std;
    
    class area
    {
    public:
    	int x;
    	int y; /*假设x,y是银行账户,那么x,y只能都不能写。可以用一个mutable变量来统计查询次数*/
    	mutable int z;
    	area() :x(10), y(10)
    	{
    	}
    	void printtx0()const
    	{
    		cout << x << ends << y << endl;
    	}
    	void printtx1()const
    	{
    		//x = x + 1;  //const成员函数中不可以改变非mutable数据的值
    		z = x + y;    /**/
    		cout << x << ends << y << endl;
    	}
    	int add(int a, int b)
    	{
    		return 0;
    	}
    };
    
    void main()
    {
    	const area area1;
    	area1.printtx0(); /*area1是一个const常量,因此可以调用printtx*/
    	area1.printtx1();
    	//area1.add(1, 2); /*const对象不可以调用非const成员函数*/
    	area area2;
    	area2.printtx0(); /*area2是一个非const常量,也可以调用printtx*/
    	area2.add(3, 5);
    	system("pause");
    }
    

     

    展开全文
  • 1)const对象可以调用非const成员函数吗? 答:不能。const修饰的对象实则修饰的是该对象的this指针,并且const修饰的成员不能进行修改,如果使用const调用非const成员函数,可能会将const对象进行修改。 2)非...

    1)const对象可以调用非const成员函数吗?

    答:不能。const修饰的对象实则修饰的是该对象的this指针,并且const修饰的成员不能进行修改,如果使用const调用非const成员函数,可能会将const对象进行修改。

    2)非const对象可以调用const成员函数吗?

    答:可以,这里就是将一个可以修改的对象进行读取,是允许的。

    3)const成员函数内可以调用其它的非const成员函数吗?

    答:不允许,const成员函数调用非const成员函数,调用该const成员函数的对象已经被设置为const类型,只可以访问不能修改,在用该const成员函数访问其他非const成员函数可能会修改,因此const成员函数不能调用非const成员函数。

    4)非const成员函数内可以调用其它的const成员函数吗?

    答:允许,与非const对象调用const对象类似。

    展开全文
  • 引发原因: 由调用成员函数时隐式传入的当前对象的this指针引起。...1、 const对象的指针为const classA* this,因此传入非const成员函数时编译器报错(类型不匹配,无法从const 指针转换为非const指针);但传入co...

    引发原因: 由调用成员函数时隐式传入的当前对象的this指针引起。
    1、 非const成员函数中的隐式参数:classA* this
    2、 const成员函数中的隐式参数:const classA* this

    根本原因:
    1、 const对象的指针为const classA* this,因此传入非const成员函数时编译器报错(类型不匹配,无法从const 指针转换为非const指针);但传入const成员函数则类型匹配。

    2、非const对象的指针为classA* this,可以调用const成员函数,因为const修饰符保证了不会修改该对象。

    详细代码案例解释见:为什么const对象只能调用const成员函数,而不能调用非const成员函数?

    总结:

    1、const对象只能调用const成员函数、不能调用非const成员函数;
    2、非const对象可以调用const成员函数。

    展开全文
  • const对象可以调用非const成员函数吗? 非const对象可以调用const成员函数吗? const成员函数内可以调用其它的非const成员函数吗? 非const成员函数内可以调用其他的const成员函数吗? 二、实践出真知 实践发现: ...

    一、先来提出问题

    1. const对象可以调用非const成员函数吗?
    2. 非const对象可以调用const成员函数吗?
    3. const成员函数内可以调用其它的非const成员函数吗?
    4. 非const成员函数内可以调用其他的const成员函数吗?

    二、实践出真知

    在这里插入图片描述
    实践发现:

    1、const对象可以调用const成员函数
    2、const对象不能调用非const成员函数
    3、非const对象可以调用const成员函数
    4、非const对象可以调用非const成员函数
    5、const成员函数不能调用非const成员函数
    6、非const成员函数可以调用非const成员函数

    1、若const对象想调用非const成员函数,则需要进行强制类型转换const_cast <T&>(Obj),例如:
    在这里插入图片描述

    2、若const成员函数想调用非const成员函数,则需要对this指针进行强制类型转换const_cast <T&>(*this),例如:在这里插入图片描述

    三、小总结

    在这里插入图片描述
    1、非const对象(成员函数)即可以调用const对象(成员函数),也可以调用非const对象(成员函数)
    2、const对象(成员函数)只能调用const对象(成员函数),想调用非const对象(成员函数)就需要强转

    展开全文
  • C++中的const对象与const成员函数

    千次阅读 2018-08-04 10:24:47
    同样,在C++中,还存在const对象以及const成员函数,const修饰的对象为只读对象,他们的特性如下:  const成员函数的定义:需要在函数的声明及定义的后边加上const关键字 -const对象只能调用const成员函数  -const...
  • 【C++】const对象和const成员

    千次阅读 2017-06-26 20:51:42
    如果我们在定义一个对象之后,不希望在后面对这个对象进行修改,那么我们可以把这个对象声明为const对象。 声明为const对象之后,这个对象的所有数据成员后面都不能被修改! const对象定义类对象时可以将其指定为...
  • const对象只能调用const成员函数

    千次阅读 2019-07-13 22:38:52
    常量成员函数 (const member ...const对象是不可以调用类中的非const成员函数。原因之后解释。 假设现在有如下代码: class test{  int i; public:  void print();  test(int i); }; test obj1(12); obj1.p...
  • C++不能用const对象调用非const方法

    千次阅读 2019-03-22 10:18:40
    error C2662: 'x' : cannot convert 'this' pointer from 'const class Point3d' to 'class Point3d &' 先看下代码: #include <stdio.h> #include <stdlib.h> #include <iostream...
  • c++ this指针与const对象

    千次阅读 2017-11-16 18:38:38
    在 c++的const对象一文中已经介绍了const对象的属性,本文尝试从this指针的角度,再来分析const对象。 1. 问题引入   同样的示例,定义一个类,并将其实例化为const对象: //1_const_obj.cpp class Obj { ...
  • c++ const对象和const函数

    千次阅读 多人点赞 2018-09-09 20:46:44
    关于const对象和const函数的分析 基本知识: 1.如果一个成员函数不对对象的任何成员数据的进行修改(最常见的为打印成员信息的函数),那么我们可以将这个成员函数设置为const函数,以保护对象数据。如void print()...
  • 在c++中,我们可以用const来定义一个const对象const对象是不可以调用类中的非const成员函数,这是为什么呢?下面是我总结的一些原理。假设有一个类,名字为test代码如下: 1 class test{ 2 int i; 3 public: 4 ...
  • C++ const对象详解

    千次阅读 2016-11-29 18:30:22
    在使用C++语言开发中,如果我们希望某一个对象在定义之后不被错误的修改,我们可以将这个对象声明为const对象,这样这个对象的数据成员就不可以被更改。 1.定义const对象 const 类名 对象名;  类名 const ...
  • C++中,const对象只能调用const成员函数,原因是什么呢?下面我们针对如下例子并对其进行分析进而理解其中缘由:#include #include using namespace std; class MyInt{ private: int i; public: MyInt(){ } ...
  • const对象也可以调用const成员函数

    千次阅读 2016-12-14 15:11:00
    当一个类只有const成员函数的时候,非const对象也可以调用const成员函数: [cpp] view plain copy  print? // ConstTest.cpp : 定义控制台应用程序的入口点。  // 
  • 如果函数返回传递给他的对象,可以通过返回引用来提高效率。例如Max()函数: Vector num1; Vector num2; Vector max = Max(num1, num2); const Vector& Max(const Vector& v1, const Vector& v2) { if
  • #include "iostream" using namespace std;...int addItem(const int *p1,const int *p2){ return *p1+*p2; }; int addItem1(int *p1,int *p2){ return *p1+*p2; }; int addItem2(int i,int j){ return i+j
  • 指向const对象的指针: 定义形式:const double *cptr; const限定了指针指向的对象类型,指针本身不是const类型 特征: 1.不能通过指针改变const对象的值,但是可以修改指针cptr指向的地址 *cptr =42; /...
  • const对象: 为了防止对象内容被更改,在对象声明前加上const限定符将其声明为const对象const对象必须在声明的时候直接初始化。const对象仍然是个左值,但是这个左值是不可修改的,任何企图修改const对象的尝试...
  • 1. 在C++中只有被声明为const的成员函数才能被一个const对象调用。如果要声明一个const类型的类成员函数,只需要在成员函数列表后加上关键字const, 例如: class Screen { public: char get() const; };在类体...
  • const成员函数和const对象的调用关系

    千次阅读 2014-09-26 17:01:17
    总结一句话:const对象只能调用const函数,非const对象可以随便调用。
  • 昨天晚上在读C Primer时读到了“const对象只能访问const成员函数”,不能理解,为什么不行呢?只要在我的成员函数中没有改变其他成员的值就可以了,为什么不能调用非const成员函数呢?后来又仔细阅读了this指针部分...
  • 关于const对象定义在头文件中

    千次阅读 2017-05-28 08:24:06
    关于const对象定义在头文件中
  • JS定义const常量对象

    千次阅读 2019-06-04 20:10:05
    但其只是规定变量的标识符不能重新分配,例如声明变量是引用类型,则不可变的只是变量绑定的指针(JS不存在这个概念,指变量的值是栈中存放的内存地址,访问时会自动寻址找到堆中存放的对象),而对象的属性可以任意...
  • C++ const对象如何在多文件之间共享

    千次阅读 2014-08-14 17:12:11
    因为const类型的特殊性,所以只能在所定义的文件你使用,即使是在多个文件
  • c++ 中const对象与默认构造函数

    千次阅读 2013-07-09 09:59:17
    先看一个“奇怪”的错误: #include #include using namespace std; class A{ private:  int sad;   ... void f() const;   void f1();  //A(int);  //A();

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 740,504
精华内容 296,201
关键字:

const对象