ylww

随笔仅作学习记录,请辩证参考!!!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

const 一般类型:

其中i不能重新被赋值。

 

const 指针:

int * p1; 这个指针代表,指针指向的内容可以改变,且指针本身可以改变指向。

int const* p2; / const int* p2;  这个指针代表,指针指向的内容不可更改,但指针本身可以改变指向。

int * const p3; 这个指针代表,指针指向的内容可以改变,但是指针本身不能改变指向。

const int * const p4; 这个指针表示,指针指向的内容不可以改变,且指针本身不可以改变指向。

其中p1并不能被p2与p4赋值。提示错误(不能将const int*类型的值分配到int*类型的实体),但能够被p3进行赋值,且能够改变指向的内容。

其中p2能被p1赋值,但通过p2并不能改变指向的内容,能够继续通过p1进行改变指向的内容。p2也能被p3,p4赋值。

其中p3和p4都不能改变指向,自然不能重新被赋值。

例子:(https://blog.csdn.net/baidu_38410526/article/details/102679685)节选

 

const 引用

const引用可读不可改,与绑定对象是否为const无关,

非const引用可读可改,只可与非const对象绑定。

 

临时对象

匿名对象可以理解为临时对象。

临时对象是有常属性的,只能作为右值。不能把临时对象作为实参传给非const引用。可以传给const引用。 (关于这一点,辩证参考https://blog.csdn.net/qq_32693119/article/details/79716462)

可以用普通对象接收临时对象,因为拷贝构造函数中就是进行常引用。

自定义类中,临时对象能够调用类的非const方法。(当然const方法也可以)

 

ps:关于隐式调用构造函数和显示调用构造函数的问题(https://bbs.csdn.net/topics/390244071)

  关于生命周期问题(C++中的临时对象,对临时对象的引用,和临时对象的指针 - Xiao_bird - 博客园 (cnblogs.com)

posted on 2023-01-03 20:04  理想主义者光芒万丈  阅读(73)  评论(0)    收藏  举报