nkorobkov
@nkorobkov

Почему компилятор не видит метод класса?

Метод add_element_from_console() описан в заголовочном файле ChymTable.h и реализован в ChymTable.cpp. Когда в теле программы я пытаюсь использовать этот метод, компилятор выдает ошибку "класс ChymTable не содержит члена add_element_from_console()". В чём может быть проблема?

Вот файл ChymTable.h:
#ifndef ChymTable_H
#define ChymTable_H
#include "Element.h"
#include <string>
#include <fstream>

class ChymTable {
	private:
		int max_num_elements;
		int num_elements;
		Element *element;
	public:
		ChymTable(unsigned int max_el);
		~ChymTable();

		void add_element(Element aelement);
		void add_element_from_console();
		void read_from_file(string filename);
		void write_to_file(string filename);
		void display_all();
		void find_element_by_mass(float amass);
		void find_metalls();
};
#endif


Вот файл ChymTable.cpp:
#include "ChymTable.h"
#include <iostream>
#include "stdafx.h"
//...реализация других ф-ций
void ChymTable::add_element_from_console() {
	element[num_elements].read_from_console();
	num_elements++;
}
//...реализация других ф-ций


Вот файл Lab_4.cpp:
#include <string>
#include <locale>
#include <Windows.h>
#include "stdafx.h"
#include "Element.h"
#include "Element.cpp"
#include "ChymTable.h"
#include "ChymTable.cpp"
#include <fstream>
#include <iostream>

using namespace std;

int main(){
//код
	table.add_element_from_console(); //здесь возникает ошибка (компилятор не видит метод)
//остальной код
}
  • Вопрос задан
  • 1670 просмотров
Пригласить эксперта
Ответы на вопрос 2
romy4
@romy4
Exception handler
вы неправильно подключаете файлы
так делать ненужно.
#include "ChymTable.h"
#include "ChymTable.cpp"

вы должны подключать только заголовки (если они идут вместе с cpp)
написать правила для make или просто перечислить все *.cpp для компилятора
Ответ написан
xpert13
@xpert13
Full Stack Developer
Попробуйте пересобрать проект (Rebuild solution)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы