Member is of non-class type

0

Witam,
Mam problem z banalnym programem. W trakcie kompilacji wyświetla mi błąd:
request for member ‘wyswietl’ in ‘map’, which is of non-class type ‘Mapa()’

oto pliki:

mapa.cpp:

#include "para.h"
#include "mapa.h"
#include <iostream>

using namespace std;

//konstruktor bezparametrowy
Mapa::Mapa(){
	glowny = NULL;
}

//dodawanie elementów listy
void Mapa::dodaj(string wyraz){
	//dodawanie pierwszego elementu stosu
	if(glowny == NULL){
		Para element(wyraz);
		glowny = &element;
	}
		
}

void Mapa::wyswietl(){
	//cout << "adres wskaznika to: " << glowny << endl;
}

mapa.h:

#ifndef MAPA_H
#define MAPA_H
#include "para.h"
#include <string>
class Mapa{
	private:
		Para * glowny;
	public:
		Mapa();
		void dodaj(string wyraz);
		void wyswietl();
};
#endif

main.cpp:

#include "para.h"
#include "mapa.h"
#include <iostream>

using namespace std;

int main(){
	
	Mapa map();
	map.wyswietl();
	
	return 0;
}
0

zamień

Mapa map();

na Mapa map;

0

Działą! dzięki

0
./mapa.h:10:28: error: unknown type name 'string'; did you mean 'std::string'?
                void dodaj(string wyraz);
                           ^~~~~~
                           std::string

Jeżeli to u ciebie przechodzi, to znaczy że w jakimś pliku .h dałeś using namespace. Nie powinno się.

0

Oprócz tego ten kod ma jeszcze trochę problemów. Najpoważniejszy to chyba

 glowny = &element;

czyli ref na lokalny obiekt

1 użytkowników online, w tym zalogowanych: 0, gości: 1