顶层Const和底层Const——函数重载

xiaoxiao2021-02-28  22

顶层Const和底层Const——函数重载

Const指针的意义

不希望改变指针的指向,这个指针指向的值不希望被改变。 不希望改变这个指针所指向的值。

int a = 4; int b = 5; int *const ptr = &a; ptr = &b; //错误,顶层指针,表示指针本身是个常量不准许改变

const int* ptr = &b; *ptr = 6; //错误,底层指针,表示指针所指向的对象是个常量,不准许改变

顶层const:指针本身是个常量 底层const:指针所指的对象是个常量

重载和const形参

Record lookup(Phone); Record lookup(const Phone); Record lookup(Phone* ); Record lookup(Phone* const);

函数参数的顶层const形参没法和没有顶层const的形参区分开来; 上面两组函数声明中,每一组的第一个声明和第二个声明是等价的;

Record lookup(Phone&); Record lookup(const Phone&); //底层const,新函数 Record lookup(Phone* ); Record lookup(Phone* const); //底层const,新函数

通过函数形参所指对象是否为非常量来区分上述函数。从而实现函数的重载。

转载请注明原文地址: https://www.6miu.com/read-2628586.html

最新回复(0)