琴长不过时光 发表于 2020-4-11 19:18:40

小白求助 关于抽象类的一点疑惑 大佬请过目

#include "iostream"
using std::endl;
using std::cout;
using std::cin;

class Interface1
{
public:
        virtual int add(int a, int b) = 0;
        virtual void print() = 0;
};

class Interface2
{
public:
        virtual int mult(int a, int b) = 0;
        virtual void print() = 0;
};

class Parent
{
private:
        int a;
public:
        int getA()
        {
                a = 0;
                return a;
        }
};

class Child :public Parent, public Interface1, public Interface2
{
public:
        virtual int add(int a, int b)
        {
                cout << "Child:add()\n";
                return a + b;
        }
public:                                 
        virtual void print()//问题:前面类 Interface1 和 Interface2中有两个print函数,可是虚函数继承后Child只写了 一个 print函数 请问这是怎么回事?
        {                        //问题:这个print函数是类Interface1的 还是Interface2的呀?
                cout << "Child:print()\n";
        }
public:
        virtual int mult(int a, int b)
        {
                cout << "Child:mult()\n";
                return a * b;
        }
};
void main()
{
        Child c1;

        Interface1* if1 = new Child;
        if1->add(11,22);
        //if1->print();
       
        Interface2* if2 = new Child;
        if2->mult(11, 22);
        //if2->print();
        system("pause");
}

BngThea 发表于 2020-4-11 19:24:38

是它自身的,子类只要有实现就都是自身的

琴长不过时光 发表于 2020-4-11 19:31:33

BngThea 发表于 2020-4-11 19:24
是它自身的,子类只要有实现就都是自身的

哦哦 知道了

琴长不过时光 发表于 2020-4-11 19:32:14

BngThea 发表于 2020-4-11 19:24
是它自身的,子类只要有实现就都是自身的

那为啥两个类中都有print函数 而子类中只有一个呢?因为virtual吗?

BngThea 发表于 2020-4-11 19:57:32

只需要一个啊,难道写两个?
页: [1]
查看完整版本: 小白求助 关于抽象类的一点疑惑 大佬请过目