前言
(读者可以跳过)老实说我大一就学习c++了,只不过当时学的真不怎么的,最后期末考试卷面50多吧。
课设也是copy的网上的,但求过,不求甚解,后来学数据结构,对与c++的了解多了一点。
现在又回来看看c++面向对象编程
一、头文件的使用
和Java不同的是,c++同一个包下不同文件的内容并不能够直接访问
像Java直接在文件a里可以实例化另一个文件中书写的类
而c++里面则不然:
显然c++需要一个导入头文件的步骤
关于头文件的书写:
和我们平常书写类,函数并无两样,不过最好一个头文件一个类,这样管理使用起来比较方便
二、面向对象的基本知识
1.面向对象的继承:
与Java所不同的是,c++支持多继承,c++的接口不是interface,就是我们定义的抽象类
我们直接用代码来感受c++类的书写与继承
class Hao{
public://访问权限设定
int a;
int b;
virtual void sethao()=0;//一个纯虚函数,表明该函数有待实现,设定此类为抽象类
}
class nihao:public Hao{//这里是关键,访问修饰符指定~~继承类别~~ ,后加父类名
public:
void sethao(){
cout<<"nihao";
}//实现接口
}
2.多态
了解了继承之后,来看看多态
多态实际上因该是和编译链有关的:
多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。(摘自菜鸟教程)
这一部分比较难以叙述,菜鸟教程中的例子很好理解,链接如下:
菜鸟教程c++多态
以我个人的叙述是:在多次继承中我们多次重写了方法,我们调用类c中方法method时候发现:存在一个方法调用链:如果类c没有重写method则在它的父类中去寻找method,以此类推:
a->b->c(这是一个继承链,其中a为根类),c中找不到则循着这条链中寻找
静态链接,以及添加virtual关键字声明虚函数表示对应的方法不被添加到静态编译链中
这是我们需要掌握的知识
总结
我,一只菜鸟的面向对象编程的基础知识就总结在这里了,只是掌握这么一点当然是不够的了,以后有机会希望能够更加熟练的掌握相关的知识
另外不足之处还请路过的读者多多批评,也多多包涵^ _ ^