Tôi coi bản thân mình là một lập trình viên C++ khá mới và tôi chưa bao giờ gặp phải lỗi này trước đây.lỗi: không có chức năng thành viên '__________' được khai báo trong lớp '_______'
Tôi chỉ đơn giản là cố gắng để tạo ra một lớp cho chức năng của tôi, nhưng tất cả std :: tôi chức năng tiền tố khai báo trong tập tin tiêu đề của tôi không được công nhận
//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;
}
chính
//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;
}
Và đây là lỗi tôi nhận
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’
Bất kỳ ý tưởng nào tôi đang làm sai? Điều này chính xác cùng std :: định dạng đã làm việc cho tôi trước, nhưng vì một số lý do bây giờ chỉ có std :: string chức năng không được công nhận khi cố gắng tạo ra một lớp Person đơn giản.
Tiêu đề đang thực hiện trong lệnh xây dựng của bạn là gì? Và những gì mọi người có chống lại danh sách khởi tạo constructor? – chris
Thật không may đây là cách duy nhất tôi đã được dạy cho chương trình và nó được ưa thích bởi gia sư/đánh dấu của tôi vì nó dễ dàng hơn cho họ để skim –
Vâng gia sư của bạn là sai về điều này. Yêu cầu trả lại tiền của bạn. – juanchopanza