2016-05-20 84 views
-3
#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(); 
} 

我似乎無法弄清楚如何使這個代碼工作。我的主要問題似乎是我不知道如何從int main()撥打fluffy.Meow();。 謝謝,任何幫助!不能調用主類功能

+0

你沒有在類定義中聲明'Meow()'。它也需要返回類型。 – Galik

回答

1

你忘了聲明在類聲明Cat::Meow

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

此外,您還可以指定哪些功能Meow的返回類型,在你的情況下,將void,因爲它沒有返回。

您還有一些遞歸正在進行,Meow調用Meow(忘記fluffy不是此範圍內的變量)。你的Cat類對實例fluffy一無所知,所以你不能訪問它。

我想你的意思是voice