該程序有用戶輸入name
/age
對,然後使用類輸出它們。 這是代碼。無法通過對象調用成員函數
#include "std_lib_facilities.h"
class Name_pairs
{
public:
bool test();
void read_names();
void read_ages();
void print();
private:
vector<string>names;
vector<double>ages;
string name;
double age;
};
void Name_pairs::read_names()
{
cout << "Enter name: ";
cin >> name;
names.push_back(name);
cout << endl;
}
void Name_pairs::read_ages()
{
cout << "Enter corresponding age: ";
cin >> age;
ages.push_back(age);
cout << endl;
}
void Name_pairs::print()
{
for(int i = 0; i < names.size() && i < ages.size(); ++i)
cout << names[i] << " , " << ages[i] << endl;
}
bool Name_pairs::test()
{
int i = 0;
if(ages[i] == 0 || names[i] == "0") return false;
else{
++i;
return true;}
}
int main()
{
cout << "Enter names and ages. Use 0 to cancel.\n";
while(Name_pairs::test())
{
Name_pairs::read_names();
Name_pairs::read_ages();
}
Name_pairs::print();
keep_window_open();
}
然而,當int main()
我想調用的函數,我得到"cannot call 'whatever name is' function without object."
我猜這是因爲它是尋找類似variable.test
或variable.read_names
。我應該如何解決這個問題?
不可能在這種情況下,因爲所有的方法都需要對象上下文來訪問成員屬性姓名,年齡,姓名,年齡的一個或多個。 (它們也可能是靜態的,但是這樣會變得毫無用處;-)) – VolkerK 2009-07-14 20:28:17