const

const int size = 1024;
int array[size];//OK

size在程序编译时就知道其值

file b:

extern const  int buffersize

buffersize在某一个地方有,但不一定是const,但是在file b中是const的,不能修改buffersize

int a = 11;
const int *p0 = &a;
int *const p1 = &a;
int const *p2 = &a;

const int *int const *等价(const都在*前面),是说int *是不可更改的(不准确的描述),即通过该指针不可更改指针所指向的内存的内容
int * const是修饰point的(const*后面),该point是不可更改的,即该point不可指向其它内存,但可更改point指向的内存的内容

#include <iostream>
using namespace std;

class A{
    int i;
public:
    A() : i(0){ }
    void f(){cout << "f ()" << endl;}
    void f() const {cout << "f() const" << endl;}
};

int main()
{
    const A a;
    a.f();
    return 0;
}

运行结果:f() const
C++代码都要先转换为C代码:

 void f(A* this){cout << "f()" << endl;
 void f(const A* this){cout << "f() const" << endl;

这里void f() const中的const指代的是this,这两个函数是overload关系

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (1)可以定义 const 常量 (2)const 可以修饰函数的参数、返回值. 详细内容: 1、什么是const...
    幽鬼09阅读 715评论 0 4
  • const是一个C语言(ANSI C)的关键字,它限定一个变量不允许被改变,产生静态作用。使用const在一定程度...
    Albert_Sun阅读 431评论 1 4
  • 改编自http://baike.sogou.com/v64494396.htm?fromTitle=CONSTht...
    mylocal阅读 489评论 0 1
  • 十一 蓝侧妃有孕。博远候自是喜不自胜,药材、吃食一应自是先紧着她。 府中的妾室早已失宠,自是避其锋芒。 纵使沈琉烟...
    君清兮阅读 352评论 0 0
  • 1.儿子有自己的家庭需要照顾,不可能再像小时候那样粘着妈妈,这是每个人必走之路,所以不能把注意力都放在儿子身上,要...
    馨鱼儿阅读 1,522评论 0 0