gpt4 book ai didi

c++ - 纯虚函数和三杠杆继承

转载 作者:太空宇宙 更新时间:2023-11-04 15:40:58 25 4
gpt4 key购买 nike

我在头文件中定义了三个类:

组织.h:

#ifndef Organizm_H
#define Organizm_H

class Organizm {
public:
int sila;
int inicjatywa;
int trup;

virtual void akcja() = 0;
virtual void kolizja() = 0;
virtual void rysowanie() = 0;
};

#endif

Zwierze.h:

#include "config.h"
#include "Organizm.h"

#ifndef Zwierze_H
#define Zwierze_H

class Zwierze : public Organizm {
public:
void akcja(int *, int *);
void kolizja(Organizm *);
};

#endif

还有威尔克.h:

#include "Zwierze.h"

#ifndef Wilk_H
#define Wilk_H

class Wilk: public Zwierze {
public:
Wilk();
void rysowanie();
};

#endif

所有非虚方法都定义在相应的文件中:Organizm.cpp, Zwierze.cpp Wilk.cpp

但是在编译时出现以下错误消息:

g++    -c -o main.o main.cpp
main.cpp: In function ‘int main()’:
main.cpp:13:16: error: cannot allocate an object of abstract type ‘Wilk’
w1 = new Wilk();
^
In file included from main.cpp:5:0:
Wilk.h:6:7: note: because the following virtual functions are pure within ‘Wilk’:
class Wilk: public Zwierze {
^
In file included from Swiat.h:2:0,
from main.cpp:3:
Organizm.h:11:16: note: virtual void Organizm::akcja()
virtual void akcja() = 0;
^
Organizm.h:12:16: note: virtual void Organizm::kolizja()
virtual void kolizja() = 0;
^
<wbudowane>: polecenia dla obiektu 'main.o' nie powiodły się
make: *** [main.o] Błąd 1
zsh: exit 2 make

我做错了什么,我该如何解决?

最佳答案

void akcja(int *, int *) 不同于 void akcja()(重载)。您无需在任何地方定义 void akcja()

关于c++ - 纯虚函数和三杠杆继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23249520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com