多个函数调用类的同一个接口,需要重复创建类的对象吗
时间: 2024-03-16 20:44:14 浏览: 15
不需要重复创建类的对象,可以通过创建一个全局变量类对象,在多个函数中共享这个对象,从而实现多个函数调用类的同一个接口。
在这种情况下,全局变量类对象的作用域为整个程序,因此可以在任何函数中访问它。这种方式可以避免重复创建类的对象,从而降低资源消耗,提高程序的效率。
以下是一个示例程序,演示了如何使用全局变量类对象实现多个函数调用类的同一个接口:
```c++
#include <iostream>
class MyInterface {
public:
virtual void doSomething() = 0;
};
class MyClass : public MyInterface {
public:
void doSomething() override {
std::cout << "MyClass::doSomething()" << std::endl;
}
};
MyClass g_myClass;
void function1() {
g_myClass.doSomething();
}
void function2() {
g_myClass.doSomething();
}
int main() {
function1();
function2();
return 0;
}
```
在上面的示例程序中,我们定义了一个抽象类`MyInterface`和一个具体类`MyClass`,并在`MyClass`中实现了`MyInterface`的`doSomething`接口。我们还定义了一个全局变量类对象`g_myClass`,它是`MyClass`类的一个实例。在`function1`和`function2`函数中,我们分别调用了`g_myClass`对象的`doSomething`函数,从而实现了多个函数调用类的同一个接口。由于`g_myClass`是全局变量,因此在程序中任何地方都可以访问它。