C++初级
文章平均质量分 72
青葙子要努力
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
operator new和operator delete函数、new和delete的实现原理、内存泄漏、泛型编程、模板
operator new和operator delete函数 定义: operator new和operator delete是系统提供的全局函数;用法与malloc和free相同,功能都是在堆上申请、释放空间; int* p1 = (int*)operator new (siaeof(int)); operator delete(p1); operator new实际上是通过malloc来申请空间的,申请成功时直接返回,失败时,会尝试执行空间不足应对措施,若该应对措施用户设置了,则继续申请,否则抛异原创 2021-07-28 09:38:02 · 560 阅读 · 0 评论 -
内部类、封装、内存分布、动态内存管理方式
内部类 定义: 如果一个类在另一个类的内部,这个类就被称为内部类。 内部类是一个独立的类,不属于外部类,外部类对内部类没有任何访问的权限。 //构造一个内部类 class A { public: class B { void fun(const A& a) {//} }; private: }; int main () { A::B b; //构造内部类 b.fun(A()); return 0; } 注:内部类可以看做外部类的友.原创 2021-07-27 12:54:42 · 235 阅读 · 0 评论 -
友元、构造函数初始化、static成员
友元、构造函数初始化、静态成员友元友元函数友元类构造函数初始化构造函数体内初始化初始化列表static成员 友元 友元是一种突破了封装的方式,在提供便利的同时,还因为增加了耦合度会破坏封装,所以不宜多用。 友元函数 定义:友元函数是定义在类外的普通函数,它不属于任何类,但需要在类的内部进行声明,同时在函数前加上关键字friend;它可以直接访问类的私有成员。 注: 友元函数可以访问类的私有成员和保护成员; 友元函数不属于该类,但需要在类中进行声明; 友元函数不能用const修饰; 友元函数可以在定义类原创 2021-07-26 12:33:33 · 385 阅读 · 0 评论 -
拷贝构造函数、运算符重载、赋值运算符重载
拷贝构造函数 定义: 只有单个形参,是该形参是对本类类型的引用;即是用一个已经存在的对象去初始化一个新的对象。 Date d1(2000,1,1); Date d2(d1); //拷贝构造函数 特征: 拷贝构造函数是构造函数的一个重载形式; 参数只有一个,必须使用应用传参,若用传值传参会引发无穷递归调用。 Date(Date d) //传值传参 //传值前需要传参Date d,这时一个拷贝构造,会形成一个无穷递归 Date(Date& d) //传引用传参 { _year = d._.原创 2021-07-20 10:46:32 · 707 阅读 · 0 评论 -
C++之剖析内联函数、auto关键字、范围for、指针空值
C++之剖析内联函数、auto关键字、范围for、指针空值 内联函数 概念* 以inline修饰的函数称为内联函数,例如: inline int add(int x,int y) { return x+y; } 内联函数能够提高程序运行效率,因为在编译时,编译器是在调用内联函数的地方展开,没有函数压栈的开销。 这时我们会想到,C语言里面的宏函数也有这个功能,并且C++是兼容C语言的,为什么不直接使用宏函数呢?下面将会说宏函数的缺陷部分: 宏函数不支持调试; 语法比较复杂,容易出错; 没有类型安原创 2021-05-27 23:20:24 · 255 阅读 · 0 评论 -
C++之引用
C++剖析之引用 概念篇 引用就是给已存在的变量取一个别名,引用不开辟新空间,它和它引用的变量共用一块内存空间。 形式是在变量类型后加上引用符号,例如: int a=9; int& b=a; //这里b为a的引用 注意: 一个变量可以有多个引用; 引用必须在定义时初始化,引用不能为空; 引用一旦引用一个实体,就再不能引用其他实体。 常引用 若变量是const修饰的常变量,引用前也必须加上const const int a = 10; //const修饰的a只可以读,不可以修改 const原创 2021-05-24 15:20:24 · 194 阅读 · 0 评论 -
C++解剖之函数重载*
C++解剖之函数重载 什么叫函数重载? 函数重载是C++允许在同一个作用域声明几个功能类似的同名函数;要求是:同名的函数的形参列表(参数个数、参数类型或顺序)不同。 int add(int x,int y); double add(double x,double y); //这里的函数名add是相同的,但里面的参数类型不同,故这两个函数是重载的 注意:函数重载是C++特有的功能;C语言不支持函数重载。 但这时候我们肯定会有一点点疑问:Why…… 为什么C++支持函数重载,而C语言却不支持? 在...原创 2021-05-19 23:11:23 · 132 阅读 · 0 评论
分享