- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 C++ 隐式转换 和 explicit 关键字
隐式转换就是编译器自动进行的类型转换,不用我们手动写代码。这有点像,你的女朋友希望你能猜中她的需求并行动。这样就只能用显式初始化的方式创建对象,能减少代码里潜在的错误,让代码逻辑更清晰。但对于我们自己创建的类类型,为了防止意外和混乱,编译器通常只允许一次隐式转换。这样能让代码逻辑更清晰,减少潜在的错误。对于内置类型,比如 int、double 这些,编译器在很多情况下会比较宽松地进行隐式转换,像刚才说的把 int 转 double。可以发现,声明构造函数为显式后,Entity A 无法进行隐式转换。
2025-12-06 21:26:10
292
原创 移 动 语 义
通过移动语义,我们可以避免对象的深拷贝,提高程序运行效率。比如有一个动态数组类,在移动对象时,如果使用传统的拷贝构造,会把整个数组都复制一份,而使用移动语义,只需要把内部数组的指针从一个对象转移到另一个对象,再把原对象的指针置空就好了,这样能大大减少内存分配和数据复制的开销。右值引用的核心是绑定 “无名字、即将销毁的右值(临时对象 / 即将被废弃的左值)”,而移动语义的本质是:既然右值本来就要被销毁了,不如直接把它的资源 “偷” 过来,不用重新分配和复制 —— 这就跳过了最耗时的 “深拷贝步骤”。
2025-12-06 11:48:15
626
原创 左值引用 右值引用
常量左值引用使用主要是在复制构造函数(Copy Constructor)和复制赋值运算符(Copy Assignment Operator)的形参使用。这样的左值引用规定了传入形参的不可变性,符合在使用前述两个函数情况下的自然语义。
2025-12-05 17:44:58
882
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅