C++抽象类的具体函数实现怎么隐藏
时间: 2023-10-12 15:04:48 浏览: 125
在C++中,抽象类的具体函数实现是通过纯虚函数来实现隐藏的。纯虚函数是在抽象类中声明但没有提供实现的虚函数。抽象类不能被实例化,只能被继承,子类必须实现纯虚函数才能实例化。
下面是一个示例:
```cpp
#include <iostream>
// 定义抽象类
class AbstractClass {
public:
// 纯虚函数,没有提供实现
virtual void abstractFunction() = 0;
// 普通函数,提供了实现
void normalFunction() {
std::cout << "This is a normal function." << std::endl;
}
};
// 继承抽象类并实现纯虚函数
class ConcreteClass : public AbstractClass {
public:
void abstractFunction() override {
std::cout << "This is the implementation of abstract function." << std::endl;
}
};
int main() {
ConcreteClass concreteObj;
concreteObj.abstractFunction(); // 调用实现的纯虚函数
concreteObj.normalFunction(); // 调用普通函数
return 0;
}
```
在上述示例中,AbstractClass是一个抽象类,其中的abstractFunction()是一个纯虚函数没有提供具体实现。ConcreteClass继承AbstractClass并实现了纯虚函数。通过这种方式,我们可以隐藏抽象类中具体函数的实现,只能通过子类来调用实现的函数。
阅读全文