- 博客(14)
- 收藏
- 关注
原创 C++运算符重载使用方法
C++运算符重载运算符重载基本概念可重载的运算符特殊运算符运算符使用的建议加号和减号运算符重载加号运算符重载减号运算符重载前置和后置(++/--)运算符重载左移和右移运算符重载赋值运算符重载指针运算符(*,->)重载关系运算符重载数组下标运算符重载运算符重载基本概念运算符重载,就是对已有的运算符重新定义,赋予另一种功能,可以适用于不同的数据类型。但是运算符不能改变本来的寓意,不能改变基础类型寓意在C++中,可以定义一个处理类的新运算符,这种定义像一个普通的函数定义,只是函数名字由operator
2020-09-26 17:36:07 3263
原创 C++友元的使用
C++友元全局函数做友元友元类类的成员函数做友元友元是一种定义在类外部的普通函数或类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元是赋予全局函数,类,类的成员函数访问其他类的私有成员的权限友元函数不是类的成员函数全局函数做友元友元函数是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。例如你有文具和钱,文具可以谁都可以借,钱不行钱只有好朋友
2020-08-17 14:25:07 413
原创 C++常函数与常对象用法
C++常函数和常对象const修饰成员函数const修饰对象const修饰成员函数1.用const修饰成员函数时,const修饰this指针指向的内存区域,成员函数体内不可以修改本类中的任何普通成员变量。2.当成员变量类型前用mutable修饰时可以修改。class Test{public: Test(int num, int id) { this->num = num; this->id = id; } //常函数:函数的()后面加const,该函数为常函数 vo
2020-08-17 12:20:53 367
原创 C++静态成员变量与静态成员函数使用方法
C++静态成员变量与静态成员函数静态成员变量静态成员函数静态成员变量在类内,如果将一个成员变量声明为static,这种成员称为静态成员变量。与一般的数据成员不同,无论实例化多少个对象,都只有一个静态数据的拷贝,相当于这个类,所有对象共享静态成员变量,在编译阶段就分配空间,对象还没创建时,就已经有空间了。1.静态成员必须在类内声明,类外初始化2.静态成员不属于某个对象,是某个类所有对象共享的,在为对象分配空间中不包括静态成员所占空间。3.静态成员变量的生命周期是整个工程。4.静态成员可以通过类名
2020-08-16 22:08:43 1002
原创 C程序预处理编译过程
C程序预处理编译过程编译步骤编译步骤1.预处理:宏定义的展开、头文件展开、条件编译等、同时将代码中的注释删除,预处理阶段不进行语法检查2.编译:编译阶段进行语法的检查,将预处理后的文件编译称汇编文件3.汇编:将汇编文件生成二进制文件(目标文件)4.链接:C语言写的程序是需要依赖各种库,所以之后还需要把库链接到最终的可执行程序中去...
2020-08-16 14:06:39 304
原创 C++深拷贝与浅拷贝问题
C++深拷贝与浅拷贝浅拷贝深拷贝浅拷贝同一类型的对象之间可以赋值,使得两个对象的成员变量值相同,两个对象仍然是独立的两个对象,这种方式称为浅拷贝。class People{public: People(int a) { Tell = a; cout << "People的构造函数" << endl; } int print() { return Tell; }private: int Tell;};int main(){ People
2020-08-15 10:19:56 192
原创 C++多个对象的构造和析构与初始化列表
C++初始化列表类对象做成员函数初始化列表类对象做成员函数在类中定义的数据成员一般都是基本的数据类型。但是类中的成员也可以是对象,我们叫对象成员。初始化列表
2020-08-15 08:48:44 455
原创 C++对象的构造与析构用法
C++对象的构造与析构构造函数和析构函数初始化与清理构造函数语法析构函数语法构造函数的分类及调用拷贝构造函数的调用时机构造函数调用规则构造函数和析构函数初始化与清理当大家买手机电脑的时候,都有一个初始化设置,也就是说这些产品当创建的时候都有一个基础值。随着时间推移,手机电脑用的越久文件越多,当我们不用的时候要清理,删除掉手机电脑中的数据,保护隐私。C++中面对对象思想中这种方法,对事物抽象,比如当创建一个对象的时候,有的数据会有初始状态,当对象销毁的时候会销毁自己创建的数据。从初始化与清理使两个重
2020-08-10 13:59:47 808
原创 C++类和对象的基础概念
C++类和对象的基础概念基础概念类的封装权限类和结构体的区别基础概念1.类是自定义数据类型,是C语言的结构体的进化2.对象是类实例化出来的,用数据类型定义一个变量3.类内的变量称为成员变量(成员属性);类内函数称为成员函数(成员方法)class M//定义了个类{public: //公共权限 int a;//成员变量或成员属性 void fun()//成员函数或成员方法 { cout << "fun()" << endl; }};int main()
2020-08-07 09:59:11 228
原创 C++中调用C语言函数
C++调用C函数C++的函数在汇编时,会给函数取别名,C语言不会,这时如果C++调用C语言函数,C++会找取了别名的函数,但C语言没有取别名,这时会出现错误<test.h>头文件中//告诉编译器找下面函数时,要以C语言的方式取寻找#ifdef __cplusplusextern "C"{#endif void fun();//C语言函数声明#ifdef __cplusplus}#endif...
2020-08-06 14:19:21 729
原创 C++函数重载语法与实现原理
C++函数重载函数重载概述函数重载基础语法为什么不能用返回值作为函数重载条件函数重载实现原理函数重载概述函数重载为了使函数名字方便使用在C语言中,函数名必须是唯一的,程序不允许出现同名的函数。在C++中是允许出现同名函数的,这种现象称为函数重载。函数重载的目的为了方便的使用函数名函数重载基础语法实现函数重载的条件同一个作用域参数个数不同参数类型不同参数顺序不同namespace A{ void test(){cout << "无参数" << endl;}
2020-08-06 12:58:51 290
原创 C++参数/(默认参数和占位参数)
默认参数与占位参数默认参数占位参数默认参数C++在声明函数原型的时可为一个或者多个指定默认的参数值,当函数调用的时候没有给这个参数传递值,编译器会自动用默认值代替void test01(int x = 100, int y = 200){ cout << "x + y = " << x + y << endl;}int main(){ test01();//没有给函数传递参数将会使用默认值 结果为300 test01(10);//传递一个参数,第二个参
2020-08-06 12:04:47 366
原创 C++内联函数概念(inline)
内联函数内敛函数的引出预处理的缺陷内敛函数基本概念类内部的内敛函数内敛函数与编译器内敛函数的引出C++从C中继承的重要特征就是效率。若 C++的效率明显低于C的效率,估计很大一批程序员不会去使用C++了。在C中我们常把一些频繁使用的计算写成宏,而不是函数,这样做的理由时为了提高执行效率,宏避免函数调用的开销,这些东西都在预处理阶段完成。但是C++出现后,预处理会出现两个问题:1.宏看起来像一个函数调用,但会有隐藏的一些难以发现的错误。2.C++ 预处理不允许访问类成员,也就是说预处理宏不能做类的
2020-08-06 11:36:54 565
原创 C++引用使用方法
C++引用引用的基本用法数组的引用引用的本质指针引用常量引用引用使用场景引用的基本用法引用是C++对C的扩充。在C/C++中指针的作用基本都是一样的,但C++增加了另外一种给函数传递地址的途径,这就是引用传递,它也存在其他编程语言中1.引用的实质是一段连续空间的别名2.程序中通过变量来申请并命名内存空间3.通过变量的名字可以使用内存空间引用相当于给变量去别名基本语法Type& ref = val;//Type是变量类型//ref是新定义的变量别名//val是之前的变量名字in
2020-08-05 19:17:01 558
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人