我有以下这些作文课程。 问题是,在Elephant.cpp中,行: cout<<“Elephant do:\ n”<
Practice62.cpp这是主类
#include < iostream >
#include "Animal.h"
#include "Elephant.h"
int main()
{
Animal an;
Elephant el(an);
el.shout();
}
// Animal.cpp:动物类
#include "Animal.h"
#include <iostream>
using namespace std;
Animal::Animal()
{
cout<<"Animal constructor"<<endl;
}
void Animal::eats()
{
cout<<"eats"<<endl;
}
void Animal::sleeps()
{
cout<<"sleeps"<<endl;
}
//Animal.h Animal header
#ifndef ANIMAL_H
#define ANIMAL_H
class Animal
{
public:
Animal();
void eats();
void sleeps();
};
//Elephant.cpp Elephant class definition
#include <iostream>
#include "Elephant.h"
#include "Animal.h"
using namespace std;
Elephant::Elephant(Animal an)
: animal(an)
{
}
void Elephant::shout()
{
cout<<"Elephant do: \n"<<animal.eats();
}
// Elephant.h:大象标题
#ifndef ELEPHANT_H
#define ELEPHANT_H
#include <iostream>
#include "Animal.h"
using namespace std;
class Elephant
{
public:
Elephant(Animal an);
void shout();
private:
Animal animal;
};
#endif
有人可以解释为什么cout不会接受&lt;&lt;
答案 0 :(得分:0)
您在cout
行中调用的功能的签名是
void eats();
这意味着它不返回任何值,因此cout
无法显示任何内容。
解决此问题并将问题功能更改为:
void Elephant::shout()
{
cout<<"Elephant do: \n";
animal.eats(); // has its own cout
}