Kłopot ze stringiem

0

Witam, mam problem ze stringiem. Kompilator wywala mi błędy w deklaracji stringa i w kostruktorze. Męczę się z tym i już naprawdę nie wiem co jest źle. :(

#include "stdafx.h"
#include "Restauracja.h"

void Restauracja::dodaj() 
{

	cout<<"DODAWANIE RESTURACJI"<<endl;
	cout<<"Podaj nazwę nowej restauracji: ";
	getline(cin, nazwa_restauracji);
	cout<<"Podaj ilość stolików: ";
	cin>>il_stolikow;

}

void Restauracja::wczytaj() 
{
	cout<<"***************************************************************************"<<endl;

	cout<<"Rezerwacja miejsc w restauracji"<<endl;
	cout<<"Podaj nazwę restauracji, w której chcesz zarezerwować miejsce: ";
	getline(cin, nazwa_restauracji);
	cout<<"Podaj numer stolika do rezerwacji: ";
	cin>>nr_stolika;
}


Restauracja::Restauracja(int il_m, int il_s, int nr_s, string name)
{
	il_miejsc=il_m;
	il_stolikow=il_s;
	nr_stolika=nr_s;
	nazwa_restauracji=name;
}


Restauracja::~Restauracja(void)
{
}
#pragma once
#include "miejsce.h"

class Restauracja :
	public Miejsce
{
protected: 
	string nazwa_restauracji;
	int il_miejsc, il_stolikow, nr_stolika;
public:
	void wczytaj();
	void dodaj();
	Restauracja(int=1, int=1, int=1, string="Bar");
	~Restauracja(void);
};
 
1

A gdzie masz

#include <string>
using std::string;
// albo 
using namespace std;

Z drugiej strony jeśli to jest plik nagłówkowy, to bez using, za to trzeba podać pełną nazwę std::string.

1
  1. dodaj #include <string>
  2. zamiast string daj std::string
0

Mam wszystkie include w stdafx.h

0

Chciałem jeszcze dodać, że używam tej funkcji wczytaj() w klasie głównej Miejsce w menu.

#include "stdafx.h"
#include "Miejsce.h"

int menu();
Samolot plane;
Restauracja rest;
Kino cinema;

void Miejsce::wybor_miejsca()
{
	for(;;) 
	{
		cout<<"DOSTĘPNE MIEJSCA: "<<endl;
		cout<<"1. KINO"<<endl;
		cout<<"2. RESTAURACJA"<<endl;
		cout<<"3. SAMOLOT"<<endl;
		cout<<"4. POWRÓT"<<endl;
		
		cout<<"Twój wybor: ";
		cin>>wybor;

		switch(wybor) 
		{
			case 1:
				system("cls");
				cout<<"Witaj w systemie rezerwacji miejsc w kinie :)"<<endl;
				cinema.wczytaj();
				break;
			case 2:
				system("cls");
				cout<<"Witaj w systemie rezerwacji miejsc w restauracji ;)"<<endl;
				//rest.wczytaj();
				break;		
			case 3: 
				system("cls");
				cout<<"Witaj w systemie rezerwacji miejsc w samolotach :)"<<endl;
				plane.wczytaj();
				break;
			case 4: 
				system("cls");
				menu();
				break;
			default:
				cout<<"Brak takiej opcji! Spróbuj ponownie!";
		}	
				getchar(); getchar();
				system("cls");
			
	}		
}


Miejsce::Miejsce(int w)
{
	w=wybor;
}


Miejsce::~Miejsce(void)
{
	cout<<"Sprzątamy";
}
 
0
p.tomcio napisał(a):

Mam wszystkie include w stdafx.h

A gdzie inkludujesz ten plik w restauracja.h?

0

Też w stdafx.h :) Ale już sobie poradziłem, okazało się ze w każdej klasie gdzie mam string'a muszę i tak zainkludować bibliotekę <string> i dać "using namespace std". Nie wiedzieć czemu, jeśli i tak jest to w pliku stdafx.h :/ Ale dziękuje za pomoc

0

w plikach nagłówkowych, z stdafx.h włącznie, nie powinno być using namespace, może być natomiast #include <string>

To oznacza, że w restauracja.h musisz używać std::string.

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