暂无个人介绍
STL(标准模板库)是一个C++标准库,其中包括一些通用的算法、容器和函数对象。STL的容器是C++ STL库的重要组成部分,它们提供了一种方便的方式来管理同类型的对象。其中,STLstring是一种常用的字符串类型。STLstring是一个类,它封装了字符串的操作,并提供了一组成员函数。STLstring的实现使用了动态的内存分配技术,这意味着字符串的大小可以随时改变。STLstring还提供了一些高效的成员函数,例如substr、find、replace等,这些函数可以对字符串进行快速的操作。
C++继承了C语言的内存管理方式,但是C语言的内存管理方式在C++中显得心有余而力不足,在涉及内存管理的自定义类型的内存释放上就显得无能为力。C++引入了new/delete和new T[]/delete[]的内存管理方式。
构造函数的初始化列表及其行为、static成员(函数,变量)、友元(函数,类)、内部类、匿名对象、对象拷贝时的编译器优化
我们想到空类的时候肯定想到的是里面什么都没有的类称之为空类,但是事实却并非如此。当一个类里面什么都不写的时候编译器会默认生成六个默认成员函数来完成一个类的基本功能。构造函数:对象初始化工作。析构函数:空间清理工作。拷贝构造和赋值运算符重载:对象的拷贝复制工作。取地址和const取地址重载:一般很少自己实现,除非需要给用户返回指定的特殊的地址。
指针数组其实就是存放指针的数组,数组中的每一个元素都指向一个地址。int* (类型名) p(变量名)[数组大小];//整形指针的数组//一级字符指针的数组//二级字符指针的数组在我们定义指针的时候,我们都是在变量名前面加上一个 * 号,数组指针也是类似的定义模式。int main(){//定义一个指向长度位10的整型数组的指针//解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个//指针,指向一个数组,叫数组指针。
我们熟知的内存开辟方式有两种:第一种便是通过等关键字为变量开辟空间;第二种便是通过开辟一段连续的空间。这样开辟的空间很局限:1. 空间开辟大小是固定的。2. 数组在声明的时候,必须指定数组的长度,它所需要的内存在编译时分配。动态内存分配所开辟的空间在堆区,并且是可以扩容的。
class为定义类的关键字,{}中的内容为类的类体,里面定义的内容称之为成员,类中的变量称之为类的属性或者类的成员变量,ClassName为类名,并且大括号后面的分号”;“一定不能省略。//类体类有俩种定义方式:声明和定义全部放在类体中(成员函数在类体中定义,编译器可能会将其作为内联函数处理)class Datepublic://private:int _year;int _month;int _day;类声明放在.h文件中,成员函数定义在.cpp文件中(成员函数前要加上。
以值作为参数或者返回类型,在传参和返回的期间,变量不会直接传递实参或返回变量本身,而传递的是实参或者变量的一份临时拷贝,如果需要拷贝的类型特别大的时候,效率是极低的。常引用就是const关键字修饰的引用,但是我们在使用常引用是会遇到各种报错,其实就是权限放大缩小的问题,所谓权限就是是否具有读或者写的权力,在C++中引用支持权限缩小但不支持权限放大。,与传统的定义变量不同,传统的定义变量是新开一份空间来存储数据,而引用则是给一个已经存在的空间起一个别名,它和引用的变量共用同一份空间。
含有缺省参数的函数在声明的时候要注意声明的时候定义和声明如果是分开的话缺省参数必须写在声明里。
c++命名空间和标准输入输出的介绍
c++11为了统一初始化方式引入了列表初始化方式,也就是使用{}对变量或者结构体变量等进行初始化。本文会以简单的语言介绍c++11的列表初始化方式和std::initializer_list。