精华内容
下载资源
问答
  • 常量函数只可以调用常量函数

    千次阅读 2013-08-22 13:32:55
    Class CTest { public:    CTest();  ~CTest();   BOOL Fun() const;  double FunB() const; }; BOOL Fun() const {  FunB(); //常量函数只可以调用常量函数 } double FunB() const {
    Class CTest
    {
    public:
     
        CTest();  
        ~CTest(); 
          BOOL Fun()  const;
         double FunB() const;
    };
    CTest::CTest()
    {
    }
    CTest::~CTest()
    {
    }

    BOOL CTest::Fun() const
    {
       FunB();   //常量函数只可以调用常量函数
    }
    double CTest::FunB() const
    {
     double dData=100.0;
      return dData;
    }
    这样就可以避免无法从this指针 XXX类 转换为 XX &了。
    展开全文
  • 常量函数与常量对象的使用

    千次阅读 2018-07-18 21:24:35
    常量函数形式:int fun(void) const; 注意:const int fun(void) 不是常量函数,只是函数的返回值为常量 #include <iostream> using namespace std; class DEMO { private:  int a; public:  DEMO...

    常量函数形式:int fun(void) const;

    注意:const int fun(void) 不是常量函数,只是函数的返回值为常量

    #include <iostream>
    using namespace std;
    class DEMO
    {
    private:
        int a;
    public:
        DEMO(int a=0):a(a){}

        void show ()
        {
            cout<<"非常量函数:"<<endl;
            cout<<a<<endl;
        }

        void show() const
        {
            cout<<"常量函数:"<<endl;
            cout<<a<<endl;
        }
        void set(int a)
        {
            this->a=a;
        }
    };

    int main()
    {
        DEMO x;  //非常量对象
        const DEMO y;//常量对象

        x.set(20);
        x.show();

        //y.set(50);      y.set必须注释,常量对象在本函数中是无法编译过的,为什么?
        y.show();
        return 0;
    }

    执行结果:

    非常量函数:20

    常量函数:0

     

    对象调用常量函数的规则:

    1.非常量对象可以调用非常量函数和常量函数

    2.常量对象可以调用常量函数,不可以调用非常量函数

    3.常量函数与非常量函数构成重载时,非常量对象调用非常量函数,常量对象调用常量函数

    为什么y.set(50)编译不过?

    :1常量对象可以调用常量函数,不可以调用非常量函数,即使加个void set(int a) const常量函数也会出错,因为常量函数不能修改成员数据,每个成员函数隐藏了一个指向对象本身的this指针,this指针的类型取决于对象,常对象的this指针是常量指针,常函数无法通过this去修改对象对应的内存

    解决方法:

    把常量指针this强制转换为非常量指针

    加个函数:

    void set(int a) const;
        {
            DEMO*p=const_cast<DEMO*>(this);

            p->a=a;
        }

     

     

     

    展开全文
  • C++中的常量函数

    千次阅读 2017-02-19 14:48:16
    讲述了C++中常量函数的作用

    常量类型的函数只有权读取外部数据内容,但无权修改他们。

    格式

    <类型说明符><函数名>(<参数表>)const;

    要注意的是,修饰符const要加在函数说明的尾部(若放在首部的话,则是对函数返回值的修饰),它是函数类型的一部分。

    例子

    int me;
    int readme const { return me; }// 常量函数
    void writeme(int i) { me = i; } 

    当一个函数被const说明后,其函数中出现的对外部数据的任何写入或修改都将被系统检查为出错。如果把函数writeme()说明为:

    void writeme(int i) const { me = i; }   

    系统将会检查出错误。

    作用

    当函数体较大且复杂时,如果我们希望系统帮助避免对对象内容进行修改,那么我们就会将这个函数定义为常量型函数,这就是使用它的主要目的。

    展开全文
  • c++常量函数的理解

    2015-08-05 19:27:22
    常量类只能调用常量函数,对于普通的类的函数可以调用常量函数, 常量数据成员的定义只能在类的外面进行初始化, #include using namespace std; class time{ private: int hour, minute, second; public: time...

    常量类只能调用常量函数,对于普通的类的函数可以调用常量函数,

    常量数据成员的定义只能在类的外面进行初始化,

    #include<iostream>
    using namespace std;
    class time{
    private:
    	int hour, minute, second;
    public:
    	time(int h, int m, int s)
    	{
    		hour = h;
    		minute = m;
    		second = s;
    
    	}
    	void showtime() const;
    
    };
    void time::showtime()const
    {
    	cout << hour << " " << minute << ":" << second << endl;
    }
    
    void main()
    {
    
    	const time meeting(2, 4, 5);
    	meeting.showtime();
    	time classtime(4, 5, 6);
    	classtime.showtime();
    	system("pause");
    
    
    }


    展开全文
  • 常量函数、常量引用参数、常量引用返回值[C++]  2009-12-01 09:42:05| 分类: 学术转载|字号 订阅 常量函数、常量引用参数、常量引用返回值[C++] 1. 关于常量引用 正像在C语言中使用指针...
  • 一、计算机中,变量 常量 函数 类均属于符号,是一个抽象的概念,不是一个实体 函数的实例或类的实例才是一个实体的概念 变量 常量犹如现实生活中的一个纸盒,这个纸盒可以存储1-N个对象的内存地址 二、函数 类...
  • const总结二 之 常量函数形参

    千次阅读 2013-10-04 16:42:19
    总结:常量函数形参传递参数,保证参数在函数体里面不受修改。有时候,如果形参是指针形参或者引用形参,或者是字符数组,不想函数体对其进行修改,那么可以采用常量函数形参。 实例: 定义EObject类,该类有width和...
  • 1. 关于常量引用正像在C语言中使用指针一样,C++中通常使用引用 有一个函数... foo()并且这个函数返回一个引用...... & foo()...., 一个指向位图(Bitmap)的引用 ...Bitmap & foo().... 并且这个位图(bitmap)是常量...
  • c++ 中 const 常量函数 static 变量 整理

    千次阅读 2014-01-09 12:53:33
    const 只对其左边起作用,如果左边没数据  则对右边起作用 如:const int * p; //修饰int 指向的数不...int * const p 修饰* 是常量指针 指针不能修改(即:不能 int a ,p= &a )但其指向变量可以修改(可以*p = 3))
  • 关于c++常量函数(const member function)

    千次阅读 2016-10-29 20:30:24
    在c++ primer中对于常最函数的解析如下: By default, the type of this is a const pointer to nonconst version of the class type. However, in the case, we cannot bind this to a const object. And means we ...
  • 常量对象、常量成员函数

    千次阅读 2018-03-26 21:05:09
    int getData()const 是指这是个常量函数只能被常量对象(即常量函数等)访问。 1、常量成员函数 (1)在函数声明后面可以加const关键字 形式如下int getx() const; (2)在成员函数后面加const关键字,那么该成员...
  • 1.常量形参 当形参有顶层const或者底层const的时候,传给它常量对象或者非常量对象都是可以的,在这里我们主要考虑形参无const, 而实参有...常量函数里的const是用来修饰*this的,其形式如下:int f() const{```}然
  • 转自:https://blog.csdn.net/feitianxuxue/article/details/7311055常量对象与常量成员函数常量对象与常量成员函数来防止修改对象,实现最低权限原则。可以用关键字const来指定对象是不可修改的,任何修改该对象的...
  • Dart const常量构造函数详解

    千次阅读 2019-10-17 09:55:45
    常量构造函数总结如下几点: 常量构造函数需以const关键字修饰 const构造函数必须用于成员变量都是final的类 构建常量实例必须使用定义的常量构造函数 如果实例化时不加const修饰符,即使调用的是常量构造函数,...
  • C++中常量成员函数

    千次阅读 2018-08-14 16:22:35
    可以将C++中类的成员函数声明为常量,这种成员函数叫做常量成员函数(const member function)。 1 声明 将const关键字放在类成员函数的参数列表之后,表示该函数常量成员函数。 class MyClass { public: ...
  • C++的常量成员函数

    2017-02-15 22:10:33
    常量成员函数分析
  • 1. 常量对象:如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字 eg. class Demo{ private: ...2. 常量成员函数:在类的成员函数说明后面可以加const关键字,则该成员函
  • C++ const常量成员函数

    千次阅读 多人点赞 2016-01-28 10:49:00
    C++ 常量成员函数const的的用法太多了,常量成员函数就是曾经让我迷惑的用法之一,即在成员函数的参数列表之后加上const。
  • 常成员函数,它的形式是在成员函数后面加上const修饰,它是为了防止特定函数改变本类对象的数据成员而产生的,目的就是保护数据成员。在常成员函数中,你不能改变数据成员的值,你也不能在常成员函数中调用非常量...
  • 01 常量对象 如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字 class CTest ...在类的成员函数后面可以加const关键字,则该成员函数成为常量成员函数。 在常量成...
  • 常量成员函数并非不能改变成员的值,也并非只能调用常量成员函数,因为我们可以通过常量成员函数调用非常量成员函数(要利用const_cast(*this).fun()),在利用非常量成员函数来改变成员变量。 常量对象并非常量...
  • 1、常量指针:本质是一个指针,表示一个指向常量的指针const int * p; //能够改变指针的指向,但不能改变指针所指对象的值2、指针常量:本质是一个常量,表示一个指针是常量int * const p; //不能改变指针的指向,...
  • 首先什么是静态成员函数,什么又是常量成员函数? 静态成员函数:是冠以 static的成员函数,而常量成员函数则是参数列表后边跟了const的,如:int f()const; 静态成员函数:不可以访问类中的变量。但可以...
  • 理解常量成员函数

    千次阅读 2018-07-04 21:49:49
    常量成员函数 (const member function), 可读取类中的数据成员,但不能修改。1 声明1.1 const 关键字 参数列表后,加 const 关键字,声明为常量成员函数,表明其不被允许修改类的数据成员 下面的类,以年、月、...
  • 类的常量成员函数(const member function)是类的成员函数,其定义的方式是将const关键字放在成员函数参数列表之后。要说明常量成员函数的用途,首先从类成员的隐式参数this说起。 1 this参数 1.1 this参数介绍 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 604,693
精华内容 241,877
关键字:

常量函数