C++学习日常——little tips
2021/4/23 22:32:06
本文主要是介绍C++学习日常——little tips,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C++学习日常——little tips
-
关于类的构造函数
单参数的构造函数,应该加上explicit关键字,防止隐式转换。
class myString{ public: myString(size_t size){ //单参数构造函数 _size = age; _ptr = (char*)malloc(size + 1); } Person(size_t size, char* ptr = (char*)malloc(10)){ //除第一个参数外,其余参数有默认值的构造函数 _size = size; } private: int _size; char* _ptr; }; int main(){ myString str1(20); //合法,匹配第一个构造函数,为str1分配21字节内存 myString str2 = 10; //本该不合法,但发生隐式转换,为str2分配11字节内存 }
为阻止本不合法的myString str2 = 10
这样的实例化操作,应在只有单参数和只有单参数无默认值的构造函数前加explicit关键字,取消构造函数隐式转换。explicit myString(size_t size){...}
-
关于const的问题
-
在确定函数不应改变或重新赋值类内成员时,应在成员函数后加上const关键字
-
const为左结合
例:
A:
int const * p = &a;
B:
const int * p = &a;
C:
int * const p = &a;
AB含义相同,都声明一个指向常量整型的指针;而C声明一个指向整型的常量指针。
-
这篇关于C++学习日常——little tips的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享