const

作者: Roy_he | 来源:发表于2014-04-17 16:50 被阅读0次
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关系

相关文章

网友评论

      本文标题:const

      本文链接:https://www.haomeiwen.com/subject/skvltttx.html