无法从main调用类的功能

时间:2016-05-20 15:49:27

标签: c++

#include <iostream> 
#include <string> 
using namespace std; 

// my code starts

class Cat {
public:

int age;
string name, race, voice;
Cat(int age2,string name2,string race2,string voice2);
void PrintInformation();
};

Cat::Cat(int age2,string name2,string race2,string voice2) {
    age = age2;
    name = name2;
    race = race2;
    voice = voice2;
}

Cat::Meow(){
    cout << "Cat says: " << fluffy.Meow() << endl;
}


void Cat::PrintInformation() {
    cout << "Name: " << name;
    cout << "\nAge: " << age;
    cout << "\nRace: " << race << endl;

  }
// my code ends

int main() 
{ 
Cat fluffy(2, "Fluffy", "Bombay", "Meoow!!!"); 
fluffy.PrintInformation(); 
cout << "Cat says: " << fluffy.Meow(); 
}  

我似乎无法弄清楚如何使这段代码工作。我的主要问题似乎是我不知道如何从fluffy.Meow();拨打int main()。 谢谢,任何帮助!

1 个答案:

答案 0 :(得分:1)

您忘记在课程声明中声明 Cat::Meow

//some code
void PrintInformation();
void Meow();

此外,您必须指定函数Meow的返回类型,在您的情况下它将是void,因为它不返回任何内容。

你还有一些递归,Meow调用Meow(忘记fluffy不是这个范围内的变量这一事实)。您的Cat类对实例fluffy一无所知,因此您无法访问它。

我猜你的意思是voice