C++
文章平均质量分 95
黑T毒物
这个作者很懒,什么都没留下…
展开
-
【C++】多态
对多态的理解:多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时是优 先买票。需要注意的是:多态是在不同继承关系的类对象,对象之间必须要有继承关系,去调用同一函数,产生了不同的行为。比如Student继承了Person。 Person对象买票全价,Student对象买票半价。class Person{ public: virtual void Bu原创 2021-03-15 12:30:21 · 108 阅读 · 0 评论 -
【C++】vector 的使用,模拟实现,以及迭代器失效问题。
vector的使用:vector空间是如何增长的?当添加元素时,如果vector空间大小不足,则会动态开辟新的空间,新空间的大小要根据STL版本而定,例如vs下capacity是按1.5倍增长的,g++是按2倍增长的。vs是PJ版本STL,g++是SGI版本STL。开辟完新空间将原空间内容拷贝过来,在新空间的内容末尾添加元素,并释放原空间。无论是1.5倍还是2倍都是根据根据需求而定的, 1.5倍增容的次数更多,效率较低,因为每次增容都是要付出时间代价的。而2倍速的增容可能效率更高一些但是比起1.5倍的增原创 2020-12-08 20:45:15 · 127 阅读 · 0 评论 -
【C++】string 的使用和模拟实现
string类对象的常见构造:如何初始化类的对象是由类本身决定的。一个类可以定义很多种构造函数。当然每种构造函数在在初始值得数量或者类型都有差别(函数重载)。string() 构造空的string类对象,即空字符串string(const char* s) 用C-string来构造string类对象string(size_t n, char c) string类对象中包含n个字符cstring(const string&s) 拷贝构造函 string s0;//默认初始化,s0是一原创 2020-10-05 20:40:06 · 161 阅读 · 0 评论 -
C++ 类和对象上(this指针,六个默认成员函数)
文章目录对象大小如何计算:this指针:构造函数析构函数:拷贝构造:运算符重载对象大小如何计算:对象中只存储成员变量,不存储成员函数。因为一个类可以实例化出多个对象,每个对象的成员变量可以存储不同的值,但是调用的函数却是一个。如果每个对象都放成员函数,而这些成员函数都一样,那么空间就浪费了,所以把成员函数放在一个公共区域。所以对象的大小是成员变量之和,并且考虑内存对齐。没有成员变量的类的大小是1个字节。这一个字节不是为了存储数据,是为了占位表示对象存在。this指针:我们先来定义一个日期类Date原创 2020-10-02 11:37:06 · 137 阅读 · 0 评论 -
C++基础(命名空间,为什么C++可以函数重载,应用,内存结构)
文章目录命名空间:函数重载:引用:内联函数:命名空间:在C/C++中,变量、函数和类都是大量存在的,如果这些变量、函数和类的名称将都存在于全局作 用域中,可能会导致很多冲突。为了解决命名冲突 ,C++中引入了命名空间,所谓命名空间就是一个可以由用户自己定义的作用域,在不同的作用域中可以定义相同名字的变量,互不干扰,系统能够区分它们。缺省参数缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该 默认值,否则使用指定的实参。全缺省参数:举例void Test原创 2020-10-01 22:28:34 · 114 阅读 · 0 评论