常量函数、常量引用参数、常量引用返回值[C++]

您所在的位置:网站首页 返回值是对象的引用 常量函数、常量引用参数、常量引用返回值[C++]

常量函数、常量引用参数、常量引用返回值[C++]

2023-12-13 17:01| 来源: 网络整理| 查看: 265

1. 关于常量引用 正像在C语言中使用指针一样,C++中通常使用引用 有一个函数 ... foo() 并且这个函数返回一个引用... ... & foo() ...., 一个指向位图(Bitmap)的引用 ... Bitmap & foo() .... 并且这个位图(bitmap)是常量 const Bitmap & foo ()

当然你也可以用指针来做同样的事情: const Bitmap * foo() foo 返回一个指针 ... 指向一个Bitmap ... 并有这个Bitmap是个常量. Bitmap * const foo() foo 返回某个东西,这个东西是常量 ... 这个东西又是指针 ... 一个指向Bitmap的指针. const Bitmap * const foo() foo 返回某个东西,这个东西是常量 ... 这个东西又是指针 ... 一个指向Bitmap的指针. .... 并且这个Bitmap也是常量. 指针常量与常量指针请参考Blog: http://www.cnblogs.com/JCSU/articles/1019219.html

const总是针对它左边的东西起作用, 唯一例外的是,如果const是一个最左边的标识符,那么const将针对它右边的东西起作用,因些 const int i; 与 int const i; 意思是相同的. 原文请参考: http://www.thescripts.com/forum/thread63796.html 2. 常量函数、常量引用参数、常量引用返回值 例1:bool verifyObjectCorrectness(const myObj &obj); //const reference parameter 例2:void Add(const int &arg) const; //const function 例3:IStack const & GetStack() const { return _stack; } //return const reference 常量引用参数 本例中,一个myObj类型的对象obj通过引用传入函数verifyObjectCorrectness。为安全起见,使用了const关键字来确保函数verifyObjectCorrectness不会改变对象obj所引用的对象的状态。此外,通过声明参数常量,函数的使用者可以确保他们的对象不会被改变,也不必担心在调用函数时带来副作用。以下代码试图对声明为常量引用的形参进行修改,从而不会通过编译!

#include  using namespace std; class Test { public:     void f(const int& arg); private:     int value;  };    void Test::f(const int& arg) {     arg=10; //试图修改arg的值,此行将引起编译器错误 //error C2166: l-value specifies const object     cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3