![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c++知识总结
c++面向对象
_wjunjie
加油吧!
展开
-
函数参数的三种传递方式
对于自定义函数,我们需要建立实参与形参之间的关系,这种关系可以分为传值调用和传址调用,二者在结果上的区别就是传值调用不能改变实参的值,而传址调用可以改变原实参的值。下面以自定义swap函数为例说明:一、传值调用:不能改变实参的值,较容易理解,略。二、传址调用: 1、引用传递:(常用) 注意事项:①、int &a=n;表示给n起了一个别名a; ...原创 2018-03-07 12:00:54 · 1629 阅读 · 0 评论 -
C++课程笔记——虚函数与多态
一、知识梳理:补充:多态与虚函数的关系: 通常,多态要用虚函数来实现,而虚函数一般用基类指针来访问。1、虚函数的定义:关键字virtual ;2、虚函数的访问:一般来说,虚函数要用基类指针来访问,需要注意的是在公有继承下,外部访问形式只能访问类的公有成员,内部访问则可以访问保护、公有两种成员。3、几个注意事项:①、注意虚函数的虚特性是可以被继承的,例如下面程序:#include<bit...原创 2018-06-24 12:07:55 · 153 阅读 · 0 评论 -
图书馆图书管理系统总结(未添加登录类)
一、历史版本:版本一:1、代码链接:https://paste.ubuntu.com/p/Z39WZYCwYb/2、大部分细节功能已经实现,但整体结构不好,有如下问题: ①、未弄清楚各类之间的关系,特别是记录类与书本数据类和学生数据类间的关系,在这里对于记录,应该是存在(被包含)于学生信息以及书本信息当中,而不应当在操作类中单独定义一个记录数组。②、学生操作类的操...原创 2019-05-06 20:11:00 · 416 阅读 · 0 评论 -
C++课程笔记——继承总结
一、知识梳理:1、几个小概念:①定义:在已有类的基础上创建新类的过程,一般在项目开发中,我们是先通过分析各个类之间的组合关系、数据成员等内容之后,如果发现某几个类之间有重复的数据成员,那我们就将其单独摘出来,作为单独的一个基类,然后其余(派生类)均继承该基类。同时我们要清楚,对于构造函数与析构函数,是无法被继承的。②访问控制权限:有公有、私有、保护三种继承方式,且无论哪种控制权限都不能访问基类的私...原创 2018-06-24 08:07:06 · 122 阅读 · 0 评论 -
重载、覆盖、隐藏间的区别
基本概念: 重载:是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。示例:class A{public: void test(int i); void test(double i);//overload void test(int i, double j);//overload void t...转载 2018-06-24 07:13:22 · 92 阅读 · 0 评论 -
公有继承,私有继承,保护继承的区别
一个子类继承父类时,可按照public、private和protected方式继承父类,每种继承方式的区别如下:1) public继承方式基类中所有public成员在派生类中为public属性;基类中所有protected成员在派生类中为protected属性;基类中所有private成员在派生类中不可访问。2) protected继承方式基类中的所有public成员在派生类中为protected...转载 2018-06-24 07:09:52 · 300 阅读 · 0 评论 -
C++课程总结——重载运算符+STL
一、重载运算符:1、知识点细化:重载运算符总结链接 https://blog.csdn.net/qq_41661919/article/details/802821212、知识再梳理:首先,重载运算符一般有两种形式:第一种用成员函数的形式重载,第二种友元形式重载。(一)其中,必须要用友元来重载的有:①、输入输出流重载;基本格式:friend ostream & operator <&...原创 2018-05-26 18:06:27 · 651 阅读 · 0 评论 -
关于含指针的复制函数的一个小程序
#include<bits/stdc++.h>using namespace std;class Student{ private: int ID; char *name; public: Student(const Student &x) { ID=x.ID; ...原创 2018-04-05 23:59:29 · 174 阅读 · 0 评论 -
指针内容补充
在前面总结参数传递的三种方式时,我们提到,在建立一个指针之后,我们首先要给它一个地址,即int *p=&a;之后p本身的值所代表的就是它所指向内容的地址,而*p就是它所指向的内容的值。但之前我们讨论的,都是指针指向一个值的情况,例如指向一个int型变量或者char型等等。但今天在复习深浅复制时,发现当我们的指针指向的是一块连续区域时(例如字符数组),上述的很多结论就不成立了...原创 2018-04-05 23:17:04 · 150 阅读 · 0 评论 -
C++课程总结——类与对象
<一>、知识体系梳理: 本章的主要内容是类与对象,所以首先我们应该弄清楚他俩之间的关系,简单的说,对象就是类的具体表达,类是一个抽象的概念,而对象则是具象的。 其次,也是本章主要阐述 的内容,就是①:怎么定义一个类(或者说类是怎么组成的),以及②:怎样使用定义好的类。一、类的定义过程: 1、先声明后定义(这两者可以分开也可以不分开):class 类名 ...原创 2018-04-21 23:28:13 · 343 阅读 · 0 评论 -
初始化列表
初始化列表一般用于构造函数赋值的操作中,它的常用赋值对象有:1、常量(常数据成员只能用初始化列表来初始化);2、引用类型;3、无参构造函数的类的对象。具体格式为 类名(形参表:如int x,int y): 成员数据(x),成员数据(y){ } 意思是成员数据绑定x,y。下面以几个例子来说明一下;一、求圆面积:#include<bits/stdc++.h>//数据成员为常量,引用...原创 2018-03-26 19:34:39 · 115 阅读 · 0 评论 -
C++课程笔记——函数与递归总结
一、知识梳理(常用的几个知识点)。1、函数定义与声明:一般来说有两种写法:一种写在主函数之前,一种写在主函数之后(即先声明,再具体实现),不过无论哪种写法,都要遵循函数先声明后操作的原则。其次:对于第二种写法在声明时一定注意加分号。2、函数类型:bool、void、int。。。。。。须要注意的是返回值一定要和函数类型相对应。3、函数的调用及实参与形参间的传递(因为之前做过一次小总结,所以在这里就简...原创 2018-03-22 23:49:22 · 391 阅读 · 0 评论 -
STL unique函数,容器去重
之前总结了一下我觉得有用的erase,lower_bound,upper_bound。现在总结一下unique,unique的作用是“去掉”容器中相邻元素的重复元素(不一定要求数组有序),它会把重复的元素添加到容器末尾(所以数组大小并没有改变),而返回值是去重之后的尾地址,下面举个例子。由于返回的是容器末尾,所以如果想得到去重后的size,需要减去初始地址,lower_bound是得到地址,...转载 2018-08-11 21:59:06 · 417 阅读 · 0 评论