Uważam się za początkującego programistę C++ i nigdy wcześniej nie doświadczyłem tego błędu.: żadna funkcja "__________" nie została zadeklarowana w klasie "_______"
Ja po prostu próbuje utworzyć klasę dla mojej funkcji, ale wszystkie moje std :: prefiksem funkcje zadeklarowane w moim pliku nagłówka nie są uznawane
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
#ifndef PERSON_H
#define PERSON_H
#include <string>
class Person
{
public:
Person();
std::string getName(); //return first name
std::string getSurname();//return surname
int getWeight(); //return weight
int getBirthYear(); //return birthyear
private:
//self explanatory member variables but need to be accessible to patient
std::string m_name;
std::string m_surname;
int m_weight;
int m_birthYear;
};
#endif
.cpp
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
#include "Person.h"
Person::Person()
{
m_name = "name";
m_surname = "surname";
m_weight = 0;
m_birthYear = 0;
return;
}
//returns m_name
std::string Person::getName()
{
return m_name;
}
//returns m_surname
std::string Person::getSurname()
{
return m_surname;
}
//returns persnon's weight
int Person::getWeight()
{
return m_weight;
}
//returns the person's birth year
int Person::getBirthYear()
{
return m_birthYear;
}
main
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
//comments
#include "Person.h"
#include <iostream>
using namespace std;
int main()
{
// Person matt;
// cout << matt.getName() << endl;
// cout << matt.getSurname() << endl;
// cout << matt.getWeight() << endl;
// cout << matt.getBirthYear() << endl;
return 0;
}
I to jest błąd Otrzymuję
g++ Main.cpp Person.h Person.cpp -o test
Person.cpp: In constructor ‘Person::Person()’:
Person.cpp:17:2: error: ‘m_name’ was not declared in this scope
Person.cpp:18:2: error: ‘m_surname’ was not declared in this scope
Person.cpp: At global scope:
Person.cpp:35:29: error: no ‘std::string Person::getName()’ member function declared in class ‘Person’
Person.cpp:41:32: error: no ‘std::string Person::getSurname()’ member function declared in class ‘Person’
Jakieś pomysły, co robię źle? To dokładnie to samo formatowanie std :: pracowało wcześniej dla mnie, ale z jakiegoś powodu teraz tylko funkcje std :: string nie są rozpoznawane podczas próby utworzenia prostej klasy Person.
Co robi nagłówek w komendzie budowania? A co ludzie mają przeciwko listom inicjalizacyjnym konstruktora? – chris
Niestety, jest to jedyny sposób, w jaki nauczyłem się programować i preferowany przez moich nauczycieli/znaczników, ponieważ łatwiej im je przeglądać. –
Cóż, twoi nauczyciele nie mają racji. Poproś o zwrot pieniędzy. – juanchopanza