
c++总结
阳光武帝
三人行必有我师焉。仗剑走天涯
展开
-
总结----string;string_view
c++为什么在C语言字符串的基础上还要创建string类??? C风格字符串是以‘\0’ 结束。 例如:char myString[ ] = "hello"; myString : strlen()函数不包含结尾符 ‘\0’。 sizeof()关键字包含结尾符 ‘\0’。 strlen()针对的是字符指针。 sizeof()针对的是字符数组。 例如: char *str = "abcdef"; strlen(str); // 输出结果为6 siezeof(str);...原创 2020-09-20 15:10:53 · 1107 阅读 · 0 评论 -
总结--内存 + 智能指针
在内存这块我们主要讨论一下几方面: C语言内存(new 、delete)、智能指针、内存泄漏 C语言内存(new 、delete) 在现代c++中,应该尽量避免使用底层内存,而是只用现代结构,例如容器、智能指针。 mallo()、与new的区别 malloc只负责申请你所指定的内存大小。而new不仅会分配正确的内存大小,还会调用相应的对象的构造函数以构建对象。 free()和delete的区别 使用free()时不会调用对象的析构函数,使用delete会调用对象的析构函...原创 2020-09-12 16:53:27 · 382 阅读 · 0 评论 -
总结-----继承和多态
之所以把继承和多态放在一起,是因为二者在关系上很难分开。 继承的概念: 在已有类的基础上创建新类。新类包含了原始类的数据成员和方法。 创建新类的主要原因就是添加和替换功能。 继承从两个方面去讨论: 添加:扩展原有类的成员(变量和方法),在继承的基础上扩展 继承的运行方式是单向的,父类与子类有着明确的关系,子类知道与父类的关系,但是父类不知道与子类的关系。 其实这样记不好记,从内存的角度去记比较好记。 从内存的大小上看很好区分。 Father* p_father = new Son;原创 2020-09-11 23:46:43 · 405 阅读 · 0 评论 -
总结----重载
看过很多遍重载重载重载重载重载重载,但是就是不会(不能用自己的语言去完美的描述)。这是一个很糟糕的地现象。 总结至关重要: 概念要清晰: 重载定义: 严格意义上来讲,重载应该叫重载函数,因为只有函数才可以重载, 你不可能把 int a; int b; 你不能把a,和b这两个变量看做是重载吧,所以记住以后没有重载这个词,全称叫重载函数。 重载函数定义: 如果在同一作用域内如果几个函数的名字相同,但是参数列表不同,我们叫这几个函数为重载函数。 重载函数是相对的概念,什么意思,就...原创 2020-09-11 13:47:45 · 250 阅读 · 0 评论