第一章 从C说起
- 很多人学习C++是一个从C到C++的一个过度,很多时候披着.cpp的皮,背地里却干着.c的事,整个代码中几乎没有体现出C++是一门面向对象的语言,它有着封装,继承,多态的特性。
- 下面总结一下C和C++的简单区别:
-
它们建立的文件类型不一样,C语言是.c,C++是.cpp;
-
C++有命名空间的概念;
-
它们的输入/输出语句不一样;
-
C不允许运算符的重载,而C++允许运算符的重载;
-
自定义类型C语言只能使用struct,而C++可以是class和struct。在C++中class和struct唯一的区别是它们默认的访问权限不同,class是private,struct是public;
-
C++有模板,可以泛型编程;
-
C语言面向过程,C++面向对象,这是它们最大的区别。
第二章 初识类和对象
- 类就是自己定义的一个数据类型,它里边包含类的数据成员和函数成员。数据成员用来存储与该类型对象相关联的状态;函数成员用来实现该类想要实现的动作,例如:
class People
{
public:
void ShowAge();//用来显示人的年龄
private:
int m_age; //用来存储人的年龄
};
- 那么什么是对象呢?对象就是类的实例化。举个例子,张三,李四,王五,赵六等等它们有共同的特征,我们将它们加以总结,划分,抽象,它们就是人类,它们自己本身就是对象。下面通过一个图来说明问题:
- 面向对象语言的三大特性:封装、继承、多态
- 封装:我的理解是封装就是把很多数据和函数集合在一起然后形成一个有共同特征的集合,比如说人有年龄,身高等等,可以吃饭,玩耍等等,那么我们就将这些状态和动作放在一起。
class People
{
public:
void Eating();
void Playing();
private:
int m_age;
double m_hight;
};
- 继承:它就想中国古代的世袭制,父亲有的,儿子也有,并且儿子还可以更改和增加从父亲哪里继承下来的东西。在继承里边还包括多重继承,比如说天使,他即有继承了人的特性,也继承了鸟的特性,他有翅膀。
class People
{
public:
void Eating();
void Playing();
private:
int m_age;
double m_hight;
};
class Bird
{
public:
void Flying();
private:
char m_wings; //翅膀
};
class Angel :public People ,public Bird //鸟人
{
public:
void flying()//这是对继承下来的东西的更改
{
//可以飞起来射箭
}
private:
char m_mana; //法力值,你就当是内功,这是新增的东西
};
- 多态:多态分为静态多态和动态多态,静态多态是重载和模板,动态多态的实现方式为重写(在后边详细述说)