C++ 接口的实现方式
2016-05-17 17:53
309 查看
一、接口的定义
有时候,我们得提供一些接口给别人使用。接口的作用,就是提供一个与其他系统交互的方法。其他系统无需了解你内部细节,并且也无法了解内部细节,只能通过你提供
给外部的接口来与你进行通信。根据c++的特点,我们可以采用纯虚函数的方式来实现。这样做的好处是能够实现封装和多态。现举一实例,供大家参考。(不想做过多说明,
大家一看就应该能够明白)
Class IPerson
{
public:
IPerson(){};
virtual ~IPerson()=0;//注意,最好要定义此虚析构函数,能够避免其实现不能正常调用析构函数的问题
//提供给外面使用的接口一般采用纯虚函数
virtual void SetName(const string &strName)= 0;
virtual const string GetName()= 0;
virtual void Work()= 0;
}
二、接口实现
实现接口是通过继承接口的子类来实现的,不同的子类可以实现不同效果,即使所谓多态。
Class CTeacher:public IPerson
{
public:
CTeacher(){};
virtual ~CTeacher();
string m_strName;
void SetName(const string &strName);
const string GetName();
void Work();
}
CTeacher::SetName(const string &strName)
{
m_strName = name;
}
const string CTeacher::GetName()
{
return m_strName;
}
void CTeacher::Work()
{
cout <<"I am teaching!"<<endl;//老师的工作是教书,其他职业的人做的工作是不一样的。
}
有时候,我们得提供一些接口给别人使用。接口的作用,就是提供一个与其他系统交互的方法。其他系统无需了解你内部细节,并且也无法了解内部细节,只能通过你提供
给外部的接口来与你进行通信。根据c++的特点,我们可以采用纯虚函数的方式来实现。这样做的好处是能够实现封装和多态。现举一实例,供大家参考。(不想做过多说明,
大家一看就应该能够明白)
Class IPerson
{
public:
IPerson(){};
virtual ~IPerson()=0;//注意,最好要定义此虚析构函数,能够避免其实现不能正常调用析构函数的问题
//提供给外面使用的接口一般采用纯虚函数
virtual void SetName(const string &strName)= 0;
virtual const string GetName()= 0;
virtual void Work()= 0;
}
二、接口实现
实现接口是通过继承接口的子类来实现的,不同的子类可以实现不同效果,即使所谓多态。
Class CTeacher:public IPerson
{
public:
CTeacher(){};
virtual ~CTeacher();
string m_strName;
void SetName(const string &strName);
const string GetName();
void Work();
}
CTeacher::SetName(const string &strName)
{
m_strName = name;
}
const string CTeacher::GetName()
{
return m_strName;
}
void CTeacher::Work()
{
cout <<"I am teaching!"<<endl;//老师的工作是教书,其他职业的人做的工作是不一样的。
}
相关文章推荐
- C++中如何可以修改const函数内的成员变量的值?
- 1007. 素数对猜想 (20)
- C++拷贝构造函数详解
- C++类内存实验(一)
- C++——成员函数
- c++ 之replace函数用法
- C语言高级知识点滴
- POJ 3254 Corn Fields(状态压缩DP)
- C语言编写金字塔
- c++ inline 函数
- c语言文件操作总结
- c语言写的数据挖掘的层次聚类算法(新手版)
- [C++] 构造/析构/赋值运算
- C++ Builder 学习1
- Symbain同时支持C++开发和Java开发
- C++ 成员运算符(. 和 ->)
- C++单例模式的最实用写法
- c++中vector的用法详解
- C++格式化输出,C++输出格式控制
- C++输入cout与输出cin