Bu program, kullanıcı girdisine name
/age
çiftleri girer ve bunları bir sınıf kullanarak çıkarır. İşte kod. Ben işlevleri çağırmak çalışıyorum zaman int main()
yılında, nesne olmadan üye işlevini çağırabilir
#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();
}
Ancak, ben bunu variable.test
veya variable.read_names
gibi bir şey arıyor çünkü tahmin ediyorum "cannot call 'whatever name is' function without object."
olsun. Bunu düzeltmek için nasıl gitmeliyim?
Mümkün değil tüm yöntemler üye özellikleri isimleri, yaşları, isim, yaş birini veya birkaçını erişmek için nesne bağlamı gerek beri. (onlar da statik olabilirlerdi. Ama sonra çok işe yaramaz ;-)) – VolkerK
teşekkür ederim. davam için düzelt. 'static' anahtar kelimesini koymayı unuttum – jondinham