小编you*_*125的帖子

为什么我的虚拟功能“唯一”或不起作用?

我的基类中有两个虚函数,但是其中一个不起作用。我不知道这是怎么回事。谁能帮我吗?

我尝试将虚拟方法“唯一”更改为纯虚拟方法,但会引发错误消息“未定义纯虚拟函数”。“打印”似乎可以正常工作,但“唯一”则不能工作。

#include <iostream>
#include "polymor.h"

void print (std::vector<Base *> b)
{
    for (int i = 0; i < b.size(); ++i)
    {
      b[i]->print();
      b[i]->unique();
    }
}

int main()
{
  std::vector< Base * > pointers;
  Base * b1 = new Derived1();
  Base * b2 = new Derived2();
  pointers.push_back(b1);
  pointers.push_back(b2);
  print (pointers);
  return 0;
}

//polymor.h:

#ifndef POLYMOR_H
#define POLYMOR_H

#include <iostream>
class Base
{
public:
  virtual void print()
  {
    std::cout << "Base\n";
  }
  virtual void unique()
  {
    std::cout << "BaseUnique\n";
  }; …
Run Code Online (Sandbox Code Playgroud)

c++ virtual inheritance overriding

2
推荐指数
1
解决办法
47
查看次数

标签 统计

c++ ×1

inheritance ×1

overriding ×1

virtual ×1