个人笔记:
1 使用cout输出需要#include<iostream>头文件作预处理命令,系统定义的不带后缀(.h),自定义加了(.h)的就不必用using namespace std;声名了,并且不能用int main有返回值的,用void main无返回值的
2 using namespace std;以为使用命名空间std
3 输入提取cin >>a >>b;
4 输出cout <<x<<endl; //endl意为换行
5 输入时多个数据间不能以符号隔开只能用空格间隔
6 class是声名“类”时的关键字,与结构体(struct定义)可以通用
7 一个类是有一批数据和对其操作的函数组成
8 被指定为公用的数据或函数 可被类内类外成员函数调用 私有的数据或函数则不行
9 具有‘类’类型特征的变量被称为对象(object)
10 调用函数:‘对象’.函数; public,Private
11 const定义常变量 const float PI=3.1415;
12 c++中函数类型不同函数名可以相同
13 函数模块解决函数体相同重复定义的问题
template<typenanme T>或者template<class T> T为类型参数 typenanme和class表示类型名
14 &引用b=a,表示b是a的,‘&’引用申明符,经过申明后a与b都代表同一变量 用于函数的参数传递
15 P19.P20传递变量的别名,申明引用既可以在函数体中申明也可以在定义函数时在形参列表中申明
16 数组不能建立引用,指针可以 P23
17 内置函数只需在函数首行左端加关键字inline即可
18 输出全局变量只要在变量前加‘::’即可
19 string定义字符串,使用时头文件为#include<string>,不需要定义其长度,可对字符串的某字符进行处理,word[0]=‘a’;,字符串的运算stract(连接)+,strcmp(比较)<>=,strcpy(复制)=
20 new int(3);开辟一个存放整数的空间,并指定整数初值为3,而分配数组空间时不能给以初值
21 delete[]指针;//[]表示对空间的操作
22 以‘类名’构建无返回值的构造函数,无需调用,如初始化函数,在声名对象时会自动调用构造函数
23 每个类都必须有一个构造函数,没有则不能创建对象
24 ~类名 析构函数来回收内存空间,无返回值,不带参并且一个类中只有一个析构函数
25 函数重载:两个函数一个带参一个不带参或者带参数多少不一样,调用时他会自动选择
26 this->x=x; ‘this->’指向指针 自动列出功能
27 继承 类文件(派生类)+:public +上一个类文件(基类)
28 基类public的可访问,private的不能被访问,而protected在派生类中的都可以进行访问,但是外部不能
29 以public继承,子类(派生类)不变,以protected继承除private外都变为protected的,以private继承出private外都变成private,因为private在子类中也是不可见的
30 函数的覆盖(发生在两个类中的),被子类中的同名函数覆盖 可以在子类函数中利用‘::’(作用域标示符)注释,naimal::breath();则基类和子类中了breath都会被运行
31 多态性 定义虚函数 函数前加virtual
32 1:25 c++主要优点封装性 继承性 多态性
33 构造函数作用:创建对象,初始化
34 析构函数作用:可用于释放对象时构造或在对象的生命期中所获取的资源
35 定义对象数组 类名 数组={A,B,C~~~ }
36 对象指针 类名 *对象指针名
37 纯虚函数:虚函数=0且无函数体,有纯虚函数的类是抽象类,不能实类化对象
38 const int *p表示所指向的值是常量,不能改变,地址可以改变;int *const p=&i表示该指针的地址值是常量;const int *const p=&i这就很明显了
39 运算符重载实质上是函数的重载,格式函数类型 operator 运算符名称(形参列表:类对象的引用){对运算符的重载处理}
40 有元函数??firend 类名 operator 运算符(类对象的引用,类对象的引用),必须有两个参数
41 虚基类