cannot call member function without object
c++
Solution
You need to instantiate an object in order to call its member functions. The member functions need an object to operate on; they can't just be used on their own. The `main()` function could, for example, look like this:
int main()
{
Name_pairs np;
cout << "Enter names and ages. Use 0 to cancel.\n";
while(np.test())
{
np.read_names();
np.read_ages();
}
np.print();
keep_window_open();
}
Problem
This program has the user input `name`/`age` pairs and then outputs them, using a class. Here is the code. ``` #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(); } ``` However, in `int main()` when I'm trying to call the functions I get `"cannot call 'whatever name is' function without object."` I'm guessing this is because it's looking for something like `variable.test` or `variable.read_names`. How should I go about fixing this?