vuelve seguir puedo pueden porque poner permite los intentarlo hashtags guardaron guardan funcionan cuantos cambios aparezco c++

c++ - pueden - porque no puedo seguir hashtag en instagram



no se puede llamar a la función miembro sin objeto (3)

Este programa tiene age pares de name / age entrada del usuario y luego los emite, utilizando una clase. Aquí está el código.

#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(); }

Sin embargo, en int main() cuando intento llamar a las funciones, obtengo la función "cannot call ''whatever name is'' function without object." Supongo que esto es porque está buscando algo como variable.test o variable.read_names . ¿Cómo debo arreglar esto?


Debe crear una instancia de un objeto para poder llamar a sus funciones miembro. Las funciones miembro necesitan un objeto para operar; no pueden ser usados ​​solo. La función main() podría, por ejemplo, verse así:

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(); }


Si quieres llamarlos así, debes declararlos estáticos.


Tiene razón: declaró un nuevo tipo de uso definido (Name_pairs) y necesita una variable de ese tipo para usarlo.

El código debe ir así:

Name_pairs np; np.read_names()