首页 > 解决方案 > 不明参考

问题描述

我必须制作一个包含其他链条或简单山脉的山脉链。出于这个原因,我构建了一个类 Mountain,然后构建了两个子类。子类 Chain 和子类 MountainSingle。类链本身包含一个指向其他 Mountain 类型对象的指针向量(因此我有一个包含指向其他 MountainSingle 或 Chain 的指针的向量)。我的代码如下:

类链

          Chain* Chain::copie() const {
            return (new Chain(*this));
            }

          Chain::Chain(Chain const & other){
              for(auto element: other.ChainofChain){
                  ChainofChain.push_back(element->copie());
              }
          }

          void Chain::dessine_sur(SupportADessin  & support) const {
               for(auto element: ChainofChain){
                 element->dessine_sur(support);// erwtisi avrio na teleiwnoume
            }
          }

          std::vector<Mountain *> Chain::get_Chains() const
          {
            return ChainofChain;
          }

           double Chain::altitude(double x, double y) const {
            double alt = 0;

            for(auto element : ChainofChain)
            {
              if(element->altitude(x,y) > alt){ alt = element->altitude(x,y); }
            }
            return alt;
          }

类山

       #include<iostream>
       #include "Dessinable.h"
       #include "SupportADessin.h"

       class Mountain:public Dessinable{
         public:
            virtual void dessine_sur(SupportADessin & support) const override= 0;
            virtual Mountain* copie() const = 0;
            virtual double altitude(double x, double y)const =0;
            virtual ~Mountain(){}
        };

但是在编译时我得到以下错误。我知道还有很多其他关于这个问题的帖子,但即使我提出了一些小的调整,我仍然会收到以下错误

        Chain::Chain(Chain const & ): undefined reference to vtable for chain. 

我很想回馈一个小例子,但它是更大程序的一部分,我不能包含所有内容。但我想要的是能够打印一个链,其中包含 MountainSingle 和其他链

先感谢您

标签: c++compiler-errorspolymorphism

解决方案


推荐阅读