Cpp真经
有关Cpp的一些核心要义
三境界
九层之台起于垒土
展开
-
Cpp真经8---STL 认识headers,版本,重要资源/STL体系结构
标准库 > STL标准库以header files形式呈现C++标准库的header files不带.h,但是仍然可以使用旧式C header files新式的headers内的组件封装于namespace “std”旧式的headers内的组件不被封装与namespace “std”;using namespace std;//orusing std::cout;重要网页CPlusPlus.comCppReferrence.comgcc.gnu.org书籍推荐THE原创 2022-04-14 18:50:06 · 541 阅读 · 0 评论 -
Cpp真经8---对象模型和this指针
成员函数与成员变量分开存储结论:非静态成员变量才属于对象身上空类的大小为1 每个实例的对象都有独一无二的地址 用一个char维护这个地址this指针this指针指向被调用的成员函数所属的对象C++规定,this指针隐含在对象非静态成员函数中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含指针this,用以保存这个对象的地址,虽然我们调用时没有写上这个this指针,但是编译器在编译时会加上this指针不是对象的一部分,用sizeof探测不会多出这个指针的大小编译器做的一些原创 2022-01-28 15:51:17 · 693 阅读 · 0 评论 -
Cpp真经7---单例模式
/SingleTon1 default constructor and copy constructro must be private2 make a instance pointor and set it private3 provide a getInstance Method to be external so that user can get the sole instance/#include <iostream>using namespace std;/*****原创 2022-01-23 22:35:18 · 461 阅读 · 0 评论 -
Cpp真经6---内联函数,函数的重载
内联函数为了解决宏函数的缺陷,所以引入了内敛函数。在适当的地方像预定义宏一样展开,所以不需要函数调用的开销,不应该再使用宏函数,而是使用内联函数。函数定义时在函数前加上inline关键字,建议编译器将该函数作为内联函数。...原创 2022-01-22 21:27:44 · 429 阅读 · 0 评论 -
Cpp真经5---引用的本质,指针的引用,常量引用
引用的本质引用的本质是常指针C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占的空间大小与指针相同。由编译器内部实现,用户不可见ref = 100l; //ref是引用 ---> *ref=100;int a=10;int& aRef = a; //自动转化为 int* const aRef = &a; 因为指针常量必须要初始化,所以引用也必须初始化,而且引用的对象也无法更改aRef = 20l //内部发现aRef是引用,自动转化为: *aRe原创 2022-01-21 21:59:37 · 387 阅读 · 0 评论 -
Cpp真经3--子类与父类的构造函数关系
子类可以继承父类所有的成员但是子类无法继承父类的构造函数,因为子类需要从父类中继承所以必须先调用子类的构造函数。如果子类没有定义构造函数,则默认调用父类的构造函数如果子类定义了构造函数,不管是有参数还是无参数的,会先调用父类的无参构造函数,再去调用自己的构造函数。也就是说如果子类没有显式的调用父类的构造函数,则会默认地调用父类无参的构造函数。如果父类只提供了有参数构造函数,那子类在继承时必须要显式调用这个有参数构造函数对于析构,和构造一样子类在析构时也会调用父类的析构函数,不过顺序相反,先调用子类原创 2022-01-06 13:32:02 · 605 阅读 · 0 评论 -
Cpp真经2--静态成员
1,静态成员变量相当于同一个类所有实例之间的一个全局变量2,一般情况下一个类设计完成之后如果不实例化出对象,在内存中是不会占用存储空间的当一个类中引入静态存储变量后情况就不一样了3,静态成员变量必须在类外进行声明或者初始化,否则在使用的时候会报链接错误int CStudent::Master = 0;4,不能用初始化列表去是实话静态成员变量5,可以使用类名去使用静态成员变量6,静态成员变量也可以设置为public但是无法直接设置为private,可以配套使用一个get成员函数和set成员函数原创 2022-01-03 23:13:02 · 270 阅读 · 0 评论 -
Cpp真经1--拷贝构造与拷贝赋值
浅拷贝/深拷贝如果类中包含了指针形式的成员变量,缺省的拷贝构造只是复制了指针变量自身,而没有复制指针所指向的内容,这种拷贝方式被称为浅拷贝。浅拷贝将会导致不同对象之间的数据共享,如果数据在堆区,析构时还可能会引发"double free",导致进程终止,所以就必须自定义一个指针复制指针所指向内容的拷贝构造函数,即深拷贝。当两个对象进行赋值操作时,比如“i3=i2”,编译器会自动将其处理为i3.operator=(i3)成员函数调用形式,其中"operator="被称为拷贝赋值操作符函数,由该函数实现两个对原创 2022-01-03 23:02:45 · 612 阅读 · 0 评论