1、
c++声明类的关键字是class、struct、union,多数用class.
例如:
class A{
pulic:
.......
private:
........
protected:
.......
};
c++声明派生类的定义如下:
class <派生类名>:<派生方式><基类名>
{
派生类成员声明;
};
其中:
⑴ 继承方式关键字为private、public和protected,分别表示私有继承、公有继承和保护继承。缺省的继承方式是私有继承。继承方式规定了派生类成员和类外对象访问基类成员的权限.
⑵ 派生类成员是指除了从基类继承来的成员外,新增加的数据成员和成员函数。正是通过在派生类中新增加成员来添加新的属性和功能,来实现代码的复用和功能的扩充的。
class B:A{
pulic:
.......
private:
........
protected:
.......
};
如果B中重写了A 中的c方法,使用A的指针调用c方法,执行的是A的c方法。使用B的指针调用c方法,执行的是B的c方法。
如果A中声明的c方法是虚函数,且B中重写了A中的c方法,则无论使用A的还是B的指针都是调用派生类B的c方法。调用虚函数,默认调用派生类的虚函数实现。
2、
虚函数声明如下:
virtual ReturnType FunctionName(Parameter);
虚函数必须实现,如果不实现,编译器将报错。
纯虚函数声明如下:
virtual ReturnType FunctionName(Parameter)=0;
纯虚函数是抽象的,没有方法体实现。纯虚函数一定没有定义,纯虚函数用来规范派生类的行为,即接口。
3、
包含纯虚函数的类是抽象类,抽象类不能定义实例,但可以声明指向实现该抽象类的具体类的指针或引用。
c++接口的声明也是用class关键字,但声明中只有纯虚函数。
有时候,我们得提供一些接口给别人使用。接口的作用,就是提供一个与其他系统交互的方法。其他系统无需了解你内部细节,并且也无法了解内部细节,只能通过你提供给外部的接口来与你进行通信。根据c++的特点,我们可以采用纯虚函数的方式来实现。这样做的好处是能够实现封装和多态。现举一实例,供大家参考。(不想做过多说明,大家一看就应该能够明白)
Class IPerson
{
public:
IPerson(){};
virtual ~IPerson()=0;//注意,最好要定义此虚析构函数,能够避免其实现不能正常调用析构函数的问题
//提供给外面使用的接口一般采用纯虚函数
virtual void SetName(const string &strName)= 0;
virtual const string GetName()= 0;
virtual void Work()= 0;
} 有时候,我们得提供一些接口给别人使用。接口的作用,就是提供一个与其他系统交互的方法。其他系统无需了解你内部细节,并且也无法了解内部细节,只能通过你提供给外部的接口来与你进行通信。根据c++的特点,我们可以采用纯虚函数的方式来实现。这样做的好处是能够实现封装和多态。现举一实例,供大家参考。(不想做过多说明,大家一看就应该能够明白)
Class IPerson
{
public:
IPerson(){};
virtual ~IPerson()=0;//注意,最好要定义此虚析构函数,能够避免其实现不能正常调用析构函数的问题
//提供给外面使用的接口一般采用纯虚函数
virtual void SetName(const string &strName)= 0;
virtual const string GetName()= 0;
virtual void Work()= 0;
}
继承接口的类,必须实现接口的方法。
分享到:
相关推荐
很好的c++学习总结(C++学习忠告、类的使用、类与内存分配。。。。。。)
对C Primer 、C++11 、Boost、C++对象模型、Modern Design和Poco库等的学习总结
c++学习总结,在学习c++时做的一些笔记
C++学习总结.docx
C++个人学习总结- 完善中 -不是很好,但还是拿出来分享一下
C++学习总结(完全可以应付面试),下载看看吧!网络收集
c++学习总结.pdf
C++学习总结.pdf
Effective C++学习总结,关于如何优化C++编程效率。
C++学习总结的知识.pdf
C++学习总结++++++++++++++++++
C++学习总结
C和C++语言学习总结,资料来自<高质量C++/C 编程指南> 详细讲述了C与C++的一些细节问题,有兴趣的话可以下载看看
本资源包含许多C++相关较重要的知识点的讲解,很详细,还有C、C++面试题及答案.
用变量a给出下面的定义 a) 一个整型数(An integer) b) 一个指向整型数的指针(A pointer to an integer) c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer) ...
C++学习经验总结,C++学习经验总结C++学习经验总结C++学习经验总结