const关键字总结

1 const关键字的作用
凡是经const修饰过的内容,只具有读的权限,不具有写的权限。也就是说,被const修饰的内容不可修改。可以提高程序的健壮性。

2 const关键字的一些使用场景及注意事项

1.const关键字修饰变量

const int a;

变量a经过const修饰过后,a的值就不可被修改,且

2 const关键字与宏
(1)const关键字具有宏的属性,经过const修饰过后的变量在预处理阶段会进行宏的替换
看如下代码:

int main() {    
  const int a = 10;       
 cout << a << endl;// 打印结果为10   预处理阶段 将宏展开  将 a  展开成 10     
 }

(2)const常量具有数据类型,编译器会对其进行安全类型检查

3 const关键字与指针

(1) 此时const修饰的是指针,此时指针的指向不能改变,此时指针本身变为常量指针

int a=10
int*const  p=&a;

(2)此时const修饰的是指针所指向的内容,此时指针指向的内容不可修改

int a=10;
const int *p=&a;

(3)此时指针和指针所指向的内容均被const修饰,此时指针指向不可改变,且,指针指向的内容不可改变

int  a=10;
const int * const p=&a;

4 const 修饰函数参数
(1)传递过来的参数在函数体内不可被修改

void function(const int val)

(2)传递过来的指针形参所指向的内容不可被修改

void function(  const int * val)

(3)传递过来的指针形参的指向不可被修改

void function(int * const val)

(4)参数为引用,为了增加效率同时防止修改

void function( condt int & a)

5 在C++ 中 const 修饰成员函数
概念: 在成员函数后面加const,const修饰的this指针 ,所指向的对象,也就是保证调用这个const成员函数的对象在函数内不被修改
要点: 被const修饰的对象或者函数,对外只具有可读权限, 不可被修改
特点:

1 const 对象可以调用其他的const函数

2 非const对象既可以调用非const成员函数,也可以调用const成员函数

3 const成员函数可以调用其他的const函数

4 非const函数既可以调用其他的非const成员函数,也可以调用const成员函数

相关推荐
<p> 课程演示环境:Windows10  </p> <p> 需要学习<span>Ubuntus</span>系统<span>YOLOv4-tiny</span>的同学请前往《<span>YOLOv4-tiny</span>目标检测实战:训练自己的数据集》 <span></span> </p> <p> <span> </span> </p> <p> <span style="color:#E53333;">YOLOv4-tiny</span><span style="color:#E53333;">来了!速度大幅提升!</span><span></span> </p> <p> <span> </span> </p> <p> <span>YOLOv4-tiny</span>在<span>COCO</span>上的性能可达到:<span>40.2% AP50, 371 FPS (GTX 1080 Ti)</span>。相较于<span>YOLOv3-tiny</span>,<span>AP</span>和<span>FPS</span>的性能有巨大提升。并且,<span>YOLOv4-tiny</span>的权重文件只有<span>23MB</span>,适合在移动端、嵌入式设备、边缘计算设备上部署。<span></span> </p> <p> <span> </span> </p> <p> 本课程将手把手地教大家使用<span>labelImg</span>标注和使用<span>YOLOv4-tiny</span>训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。<span></span> </p> <p> <span> </span> </p> <p> 本课程的<span>YOLOv4-tiny</span>使用<span>AlexAB/darknet</span>,在<span>Windows10</span>系统上做项目演示。包括:<span>YOLOv4-tiny</span>的网络结构、安装<span>YOLOv4-tiny</span>、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计<span>(mAP</span>计算<span>)</span>和先验框聚类分析。 <span> </span> </p> <p> <span> </span> </p> <p> 除本课程《<span>Windows</span>版<span>YOLOv4-tiny</span>目标检测实战:训练自己的数据集》外,本人推出了有关<span>YOLOv4</span>目标检测的系列课程。请持续关注该系列的其它视频课程,包括:<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:训练自己的数据集》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:人脸口罩佩戴识别》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测实战:中国交通标志识别》<span></span> </p> <p> 《<span>Windows</span>版<span>YOLOv4</span>目标检测:原理与源码解析》<span></span> </p> <p> <span> <img alt="" src="https://img-bss.csdnimg.cn/202007061503586145.jpg" /></span> </p> <p> <span><img alt="" src="https://img-bss.csdnimg.cn/202007061504169339.jpg" /><br /> </span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页