
C++ 类和对象
文章平均质量分 57
ALL IN C
没有什么问题是解决不了的
展开
-
C++类和对象--指向类成员的指针
C++类和对象--指向类成员的指针1. 指向普通变量和函数的指针2. 指向类数据成员的指针2.1 定义2.2 赋值&初始化2.3 解引用2.4 案例3. 指向类成员函数的指针3.1 定义3.2 赋值&初始化3.3 解引用3.4 案例3.5 应用之实现隐蔽接口4. 指向类静态成员的指针1. 指向普通变量和函数的指针#include <iostream>using namespace std;void func(int a){ cout<<a<&l原创 2021-10-31 10:01:41 · 1007 阅读 · 0 评论 -
C++类与对象--static修饰符
C++类与对象--static修饰符1.类静态数据成员的定义及初始化1.1 声明1.2 初始化1.3 调用1.4 案例在 C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏(相比全局变量的优点)的原则,保证了安全性还可以节省内存。类的静态成员,属于类,也属于对象,但终归属于类。1.类静态数据成员的定义及初始化1.1 声明static 数据类型 成员变量; //在类的内部1.2原创 2021-10-30 18:36:05 · 828 阅读 · 0 评论 -
C++类与对象--const修饰符
C++类与对象--const修饰符1. 常数据成员2. 常成员函数2.1 const修饰函数的意义2.2 const修饰函数位置2.3 const构成函数重载2.3 小结3. 常对象3.1 小结1. 常数据成员const 修饰类的成员变量,表示成员常量,不能被修改,同时它只能在初始化列表中赋值(c11 中支持类中实始化)。可被 const 和非 const 成员函数调用,而不可以修改。class A{public: A():iValue(199) {}private: const int原创 2021-10-30 12:28:41 · 439 阅读 · 0 评论 -
C++类与对象--成员函数的存储方式
C++类与对象--成员函数的存储方式类成员实际组成调用原理注意事项类成员实际组成用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了 10 个对象,那么就需要分别为 10 个对象的数据和函数代码分配存储单元。那能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去调用这个公用的函数代码。如下图:显然,这样做会大大节约存储空间。C++编译系统正是这样做的,因此每个对象所占用的存储空间只是该对象原创 2021-10-30 11:32:00 · 741 阅读 · 0 评论 -
C++类与对象--栈和堆上的对象及对象数组
栈和堆上的对象及对象数组引例栈对象数组堆对象数组修改引例后结论引例类没有无参构造器时#include <iostream>using namespace std;class Stu{public: Stu(string n):_name(n){} void dis() { cout<<_name<<endl; }private: string _name;};int main(){ //原创 2021-10-30 11:18:27 · 380 阅读 · 0 评论 -
C++类与对象--返回栈对象
C++ 返回栈对象示例1示例2示例3示例1#include <iostream>using namespace std;class A{public: A(){ cout<<this<<" constructor"<<endl; } A(const A &other) { cout<<this<<" cp contructor from "<<原创 2021-10-30 10:47:11 · 388 阅读 · 0 评论 -
C++类与对象--赋值运算符重载(Operator=)
赋值运算符重载1. 定义2. 规则1. 定义类名{ 类名& operator=(const 类名& 源对象) 拷贝体}class A{ A& operator=(const A& another) { //函数体 return *this; }};2. 规则1.系统提供默认的赋值运算符重载,一经实现,不复存在。2.系统提供的也是等位拷贝,也就浅拷贝,会造成内存泄漏,重析构。3.要实现深拷贝,必须自定义。4.自定义面临的问题有三个原创 2021-10-29 21:24:57 · 745 阅读 · 0 评论 -
C++类与对象--this指针
C++ this指针1. 意义2. 作用1. 意义系统在创建对象时,默认生成的指向当前对象的指针。这样作的目的,就是为了带来方便。2. 作用避免构造器的入参与成员名相同。基于 this 指针的自身引用还被广泛地应用于那些支持多重串联调用的函数中。比如连续赋值。如下:#include <iostream>using namespace std;class Stu{public: Stu(string name, int age) // :name(name),age(ag原创 2021-10-29 21:23:11 · 105 阅读 · 0 评论 -
C++类与对象--拷贝构造
C++ 拷贝构造1. 拷贝构造的定义及意义2. 拷贝构造发生的时机3. 深拷贝和浅拷贝1. 拷贝构造的定义及意义由己存在的对象,创建新对象。也就是说新对象,不由构造器来构造,而是由拷贝构造器来完成。拷贝构造器的格式是固定的。class 类名{ 类名(const 类名 & another) 拷贝构造体}class A{ A(const A & another) {}}规则:系统提供默认的拷贝构造器。一经实现,不复存在。系统提供的是等位拷贝,也就是所谓的浅拷原创 2021-10-29 21:03:34 · 370 阅读 · 0 评论 -
C++类与对象--构造器和析构器
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-10-29 14:37:29 · 241 阅读 · 0 评论