C++程序 创建接口

C++程序 创建接口

接口 仅是描述类行为而不承诺实现类的一种方式。在C++编程中,没有内置的接口概念。为了创建接口,我们需要创建一个仅具有纯虚拟方法的抽象类。在C++中,接口也称为纯抽象类。

纯虚拟函数

纯虚拟函数是一种我们仅声明函数而不定义函数的函数。纯虚拟方法/函数的实现是通过方法/函数覆盖在派生类完成的。如果函数在类中定义如下,则称该函数为纯虚拟函数。

virtual datatype functionName(parameter1, parameter2, …) = 0

抽象类

抽象类是专门设计为基类使用的类。抽象类必须至少有一个纯虚拟函数。它可能具有变量和常规函数。抽象类的派生类必须实现它们的基类的所有纯虚拟函数,否则它们也将变为抽象类。

接口的重要性

  • 从纯抽象类(接口)派生的任何类必须实现基类即接口的所有方法。
  • 可以将接口指针传递给函数和类,因此可以从那里调用派生类的函数。

使用接口的规则

  • 仅声明纯虚拟函数。(不定义)
  • 对于纯虚拟函数,只分配0。
  • 不能创建该类的实例。
  • 可以创建指向具有基础抽象类引用的派生类实例的指针。

让我们来看几个创建接口的程序示例。

示例1: 在下面的代码中,创建了一个接口GFG,即一个具有纯虚拟方法的抽象类,并在子类中实现了函数,在主函数中按照使用接口的规则调用了returnString()方法。

// C++ program to implement
// Interface
#include <iostream>
#include <string>
using namespace std;
  
// Interface(Abstract class 
// with pure virtual function)
class GFG 
{
  public:
    virtual string returnString() = 0;
};
  
class child : public GFG 
{
  public:
    string returnString() 
    { 
       return "GeeksforGeeks"; 
    }
};
  
// Driver code
int main()
{
    child childObj;
    GFG* ptr;
    ptr = &childObj
    cout << ptr->returnString();
    return 0;
}  

输出

GeeksforGeeks

示例2: 在下面的代码中,创建了一个抽象类websiteName,并在其中放置了一个纯虚函数。因此,它充当了接口。方法getName()的功能在基类的两个子类中实现。

// C++程序实现 接口
#include <iostream>
#include <string>
using namespace std;

// 接口(抽象类,纯虚函数)
class websiteName 
{
  public:
    virtual string getName() = 0;
};

class shortForm : public websiteName 
{
  public:
    string getName() 
    { 
      return "GFG"; 
    }
};

class fullForm : public websiteName 
{
  public:
    string getName() 
    { 
      return "GeeksforGeeks"; 
    }
};

// 主函数
int main()
{
    shortForm obj1;
    fullForm obj2;
    websiteName* ptr;
    ptr = &obj1;
    cout << "Short form - " << 
              ptr->getName();
    ptr = &obj2;
    cout << "\nFull form - " << 
              ptr->getName();
    return 0;
}  

输出结果

Short form - GFG
Full form - GeeksforGeeks

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例