C++;从基类继承的多个类导致问题 所以,我基本上用C++设计了一个“hello,World!”OOP。 我有两个班,鸡和狗,从公共动物继承。 在int main中,当我创建每个类的实例时,会收到错误消息,声称我创建了类Animal的多个实例
C++;从基类继承的多个类导致问题 所以,我基本上用C++设计了一个“hello,World!”OOP。 我有两个班,鸡和狗,从公共动物继承。 在int main中,当我创建每个类的实例时,会收到错误消息,声称我创建了类Animal的多个实例,c++,linux,oop,C++,Linux,Oop,Animal.h #ifndef ANIMAL class Animal { int x; int y; int z; public: void setPosition(int newX, int newY, int newZ); void setX(int newX); void setY(int newY); void setZ(int newZ); int getPosition(); int getX(); int
Animal.h
#ifndef ANIMAL
class Animal
{
int x;
int y;
int z;
public:
void setPosition(int newX, int newY, int newZ);
void setX(int newX);
void setY(int newY);
void setZ(int newZ);
int getPosition();
int getX();
int getY();
int getZ();
};
#endif
Chicken.h
#ifndef ANIMAL_H
#include "../animal.h"
#endif
class Chicken : public Animal
{
int id;
bool isClucking;
bool isEnraged;
public:
void setID(int newID);
void setClucking(bool yn);
void setEnraged(bool yn);
int getID();
bool getClucking();
bool getEnraged();
};
Dog.h
#include "../animal.h"
class Dog : public Animal
{
int id;
public:
void setID(int newID);
int getID();
};
此处代码:您将动物.h定义为
#ifndef ANIMAL
class Animal
{
应该是
#ifndef ANIMAL
#define ANIMAL
class Animal
{
因此,animal.h
不包含多次
此外,为了保持一致性,请让所有标题都有一个标题。所以狗和鸡需要它
除非你真的需要它
#ifndef ANIMAL_H
#include "../animal.h"
#endif
应该是
#include "../animal.h"
因为前一个构造要求定义与您的原因中已经不匹配的匹配
animal.h
定义animal
或至少尝试定义,但您包括的是检查animal\u h
您将动物.h定义为
#ifndef ANIMAL
class Animal
{
应该是
#ifndef ANIMAL
#define ANIMAL
class Animal
{
因此,animal.h
不包含多次
此外,为了保持一致性,请让所有标题都有一个标题。所以狗和鸡需要它
除非你真的需要它
#ifndef ANIMAL_H
#include "../animal.h"
#endif
应该是
#include "../animal.h"
因为前一个构造要求定义与您的原因中已经不匹配的匹配
animal.h
定义animal
或至少尝试定义,但您包括的是检查animal\u h
请在问题中发布您的代码。请编辑您的问题,而不是链接到完整的代码,以包含一个演示您的问题的代码。此外,请发布编译器的确切错误消息,以及编译器的名称和版本。请在问题中发布您的代码。请编辑您的问题以包含一个演示您的问题的,而不是链接到完整的代码。此外,请发布编译器的确切错误消息,以及编译器的名称和版本。我鼓励使用#pragma once
BTW;)我鼓励使用#pragma一次