笔记目录
- 前言
- 一、什么是类(class),什么是对象(obj)
- 二、如何创建自己的类
- 三、公有和私有的初步概念
- 四、如何使用一个类
- 五、什么是成员函数
- (1)-(5)、一部分阶段总结
- 六、构造函数
- 七、带参数的构造函数
- 八、析构函数
- 九、常用成员函数,关键词const
- 十、静态成员函数,静态成员数据,关键词Static
- (6)-(10)、二部分阶段总结
- 十一、再谈public和private
- 十二、正规程序的类定义写法
- 十三、(略)友元类,关键字friend
- 十四、类的派生继承初步
- 十五、类在不同情况下的继承,关键字public,private,protect
- 十六、子类的构造函数
- 十七、多态的初步
- 十八、类的指针
- 十九、真正的多态与虚函数(覆盖),关键字virtual
- 二十、纯虚函数与抽象类
- 二十一、(略)子类的析构函数与虚析构函数
- (11)-(21)、三部分阶段总结
- 总结
前言
B站_E课网 ; C++ ; 笔记
一、什么是类(class),什么是对象(obj)
(1) C语言 : int a = 10
- int 表示整数类(系统自带);
- a是这个类的一个对象 ; 10是a的属性
- float,char等都是系统自带的类 // string不是系统自带的
(2) 面向对象的编程
- 创建自己的类
- 创建自己的对象
- Eg:
学生类 student,对象 张三李四…;
类比 int a;int b…
二、如何创建自己的类
形式:
class student
{//大括号里的叫类定义
string name;
int age;
}
- 类名:student
- 类里两个内容 : age,name,称为属性(类的成员数据)
- 目前,可类比C语言结构体
三、公有和私有的初步概念
在类的定义里,形式如
class student
{
public:
string name;
private:
int age;
}
- name公有
类的外部(主函数或其他类)可以读写name的值 - age私有
类的外部无法读写 - 可以只有public
初学者可以先不写private
// 没有private的类相当于结构体
四、如何使用一个类
类被定义后,就创建类的对象,形式类比 int a;
//主函数中:
//语法无误,但属于野路子
student aa; // 创建一个student类的对象,名字叫aa
aa.age = 20; // 给对象aa的属性赋值,和结构体一样
五、什么是成员函数
1.函数的原型必须在类中定义(类外为全局函数)
# include<iosteam>
using namespae std;
class Sales_item
{
//类的数据成员通常私有,private:
public://简化做法
std::string isbn; //书号
unsigned units_sold; //数量
double revenue;
};
int main(void)
{
Sales_item item1,item2;
iteml.isbn = "0-0-1";
iteml.units_sold = 10;
iteml.revenue = 300.00;
iteml.isbn = "0-0-1";
iteml.units_sold = 2;
iteml.revenue = 70.00;
return 0;
}
2.函数体
- 在类中定义函数体
- 在类外定义函数体
3.类成员函数的重载
- 与C语言普通函数一样,成员函数也可以重载
- 不同的函数可以有相同的函数名,通过不同的输入参数来识别
(1)-(5)、一部分阶段总结
1.到此为止已经讲完了全部的基本概念:
- 类 // 类定义里要写成员和方法的声明
- 对象
- 属性 // 成员数据
- 成员函数 // 给属性赋值,又叫方法,具体内容可写在类外面
2.一个面向对象的代码最少有三部分:
- 类的定义
- 成员函数的定义
- 创建对象然后调用方法
六、构造函数
1.A aa,创建aa对象,对象aa有默认值吗?
- 如果有构造函数,那aa就有默认值
2.为什么要构造函数?
- 不用再建立一个对象aa后,分别写代码调用它的成员函数,为它的各个属性赋值
- 构造函数的本质即:对象初始化
3.构造函数形式
- 构造函数,没用输入值和返回值,并且名字和类名一样
- 构造函数定义
//以student类为例
//构造函数定义
student :: student()//特点:冒号两边一样,函数没有输入值
{
//构造函数里,可以给全部的属性赋一个默认值
age = 20;
name = "张三";
}
//使用
class student
{
private:
int age;
string name;
student(); // 构造函数声明,名字与类名一样
};
//主函数
student aa;
}
4.带参数的构造函数
//前面的构造函数
七、带参数的构造函数
八、析构函数
九、常用成员函数,关键词const
十、静态成员函数,静态成员数据,关键词Static
(6)-(10)、二部分阶段总结
十一、再谈public和private
十二、正规程序的类定义写法
十三、(略)友元类,关键字friend
十四、类的派生继承初步
十五、类在不同情况下的继承,关键字public,private,protect
十六、子类的构造函数
十七、多态的初步
十八、类的指针
十九、真正的多态与虚函数(覆盖),关键字virtual
二十、纯虚函数与抽象类
二十一、(略)子类的析构函数与虚析构函数
(11)-(21)、三部分阶段总结
总结
23/05/05 -