C++笔记
C++笔记
人间理想无谓
当笔记用
展开
-
虚函数啥也不会的笔记
第八章多态性:重载运算符的实质:+,-这些在C++中只能应用于基本数据类型的运算,而不能使用适用于用户自定义的数据类型;实现机制:将指定的运算符表达式转化为运算符函数的调用;运算对象转化为运算符函数的实参;编译系统对重载运算符的选择,遵循函数重载的选择原则;可以重载C++中除下列运算符外的所有运算符:. .* :: ?:只能重载C++语言已有的运算符,不能臆造新的;不能改变原运算符的优先级和结合性;不能改变操作数的个数;经重载的运算符,其操作数至少应该有一个自定义类型;两种形式:原创 2021-05-25 23:13:03 · 134 阅读 · 0 评论 -
继承与派生笔记
第七章 继承与派生类的继承与派生:保持已有类的特性而构造新类的过程称为继承。在已有类的基础上,新增自己的特性,产生新类的过程称为派生。 继承与派生其实是同一过程从不同的角度看,我们将保持已有类的特性而构造新类的过程称为继承,说白了继承的目的就是实现原来设计与代码的重用,希望尽量利用原有的类。然而当新的问题出现,原有程序无法解决或不能完全解决时,需要对原有程序进行改造,在已有类的基础上新增自己的特性而产生新类的过程称为派生。相关重要概念整理如下:基类(父类):被继承的已有类派生类:派生出的新原创 2021-05-25 18:19:03 · 104 阅读 · 0 评论 -
深拷贝与浅拷贝和字符串连接的一些知识
深拷贝与浅拷贝浅拷贝:实现对象间数据元素一一对应复制;深拷贝:当复制的对象是指针类型时,不复制该指针成员本身,而是复制指针所指的对象;举例:对象的浅拷贝:#include<iostream>using namespace std;class IntArry{ public: IntArry(int n)//构造函数 { data = new int [size]; size=n; } ~IntArry()//析构函数 { del原创 2021-05-25 14:54:55 · 116 阅读 · 0 评论 -
友元函数与友元类,外加一点常类型与静态生存期
静态生存期:当对象用关键字 static 声明时,对象具有静态生存期,生存期为程序的整个生命周期。静态成员函数只能引用属于该类的静态数据成员或静态成员函数。友元:友元函数和友元类C++提供的一个破坏数据封装和数据隐藏的机制。通过将一个模块声明为另一个模块的友元,一个模块能引用另一个模块被隐藏的信息;为了确保数据完整性,建议不使用或者少使用友元。友元函数:在类声明中,使用friend修饰说明的非成员函数,在它的函数中,可以访问对象的private和protected成员;可以增加灵原创 2021-05-22 10:03:17 · 121 阅读 · 0 评论 -
重载函数
重载函数:C++允许功能相近的函数在相同作用域内以相同函数名命名,从而形成重载;例子:形参类型不同的重载int add(int x,int y);float add(float x,float y);形参个数不同的重载:int add(int x,int y,int z);int add(int x,int y);重载必须形参不同:个数不同或者类型不同。系统会自动识别形参的情况选择调用哪个函数。...原创 2021-05-21 21:24:48 · 96 阅读 · 0 评论 -
类的组合
类的组合:一个类的成员数据是另一个类的对象。声明方式:类名::类名(对象成员所需的形参,本类成员形参):对象1(参数),对象2(参数){ 本类初始化;}类组合的构造函数使用:先调用内嵌对象的构造函数,先声明者先构造。在调用本类的构造函数。析构函数正好相反;class Part //部件类{ public: Part(); Part(int i); ~Part(); void Print(); pri...原创 2021-05-21 21:10:32 · 109 阅读 · 0 评论 -
类与对象的主要内容。
类与对象。构造函数。拷贝构造函数。析构函数。原创 2021-05-21 21:08:22 · 51 阅读 · 0 评论 -
指针总结大团圆笔记
字符串初始化的三种形式:char str[]="hello";char str[6]="hello";char str[6]={'h','e','l','l','o','\0'};//以/0结尾指针大总结:指针与地址int a;int *p = NULL;p = &a;指向数组元素的指针int a[4];int *pa;pa=&a[0]; 或 pa=a;指针数组(存储指针的数组)int *pa[2]; int a, b; p[0] = &a原创 2021-05-21 10:56:33 · 50 阅读 · 0 评论 -
动态内存分配笔记
动态内存分配静态分配:在栈上分配,用户申请,操作系统释放。动态分配:在堆上分配,程序员向系统申请,并负责归还。为什么要动态分配内存?程序运行时才确定需要多少空间需要较多的内存空间动态存储分配函数:void *malloc(size);参数size,欲分配的字节数返回值:成功,void型指针。 失败,返回空指针头文件:<cstdlib>和<camlloc>int *p=(int *)malloc(4); *p=12;//整数占4个字节int *q=(i原创 2021-05-21 10:55:45 · 62 阅读 · 0 评论 -
指针与数组笔记
数组与指针笔记数组的引用方式:void fun(int A[], int n);在函数定义中直接写出数组,不必写出具体个数。 fun(Table, 4);在函数引用中可以直接使用数组名。关于内存空间的访问方式:通过变量名访问和通过地址访问。指针和指针变量:指针:内存地址,用于间接访问内存单元。指针变量:用于存放地址的变量。声明:例如:int i=3;int *i_pointer=&i;引用:i=3;*i_pointer=3;//i_pointer=2000原创 2021-05-20 16:41:17 · 97 阅读 · 0 评论 -
形参和实参的区别
如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值。这一节我们先来讲解C语言函数的参数,下一节再讲解C语言函数的返回值。C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。形参(形式参数)在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。实参(实际参数)函数被调用时给出的参数包含了实实在在的数据,会被转载 2021-05-20 13:28:07 · 1865 阅读 · 0 评论 -
C++第五章笔记
第五章作用域与可见性对象的生存期数据与函数静态成员共享数据的保护友元函数原型中的参数,其作用域始于“(”,结束于")"。例如,设有下列原型声明:double Area(double radius);类作用域作用于特定的成员名。类X的成员M具有类作用域,对M的访问方式如下:如果在X的成员函数中没有声明同名的局部作用域标识符,那么在该函数内可以访问成员M。通过表达式x.M或者X::M访问。通过表达式prt->M不在前述各个作用域中出现的声明,具有文件作用域,这样声明的标识符原创 2021-05-20 09:37:37 · 148 阅读 · 0 评论 -
C++第四章笔记
c++学习笔记第四章 面向对象数据抽象。钟表类实例:class Clock{ public: void SetTime(int NewH,int NewM,int NewS); void ShowTime(); private: int Hour,Minute,Second;}封装:将抽象出的数据成员,代码成员相结合,将他们视为一个整体。通过类中的{}来实现封装。上文中的:SetTime,ShowTime是外部接口。继承和派生,多态性(同一个名...原创 2021-05-20 09:29:03 · 289 阅读 · 0 评论