Vector wskaźników

0

Dawno tutaj nie zaglądałem więc na wstępie witam wszystkich ponownie :)
Tworzę prosty program symulujący Bibliotekę. Oto kod źródłowy:

#include "Ksiazka.h"
#include <vector>
class Biblioteka
{
private:
	struct DaneWypozyczajacego
	{
		string imie;
		string nazwisko;
		string pesel;
	};
	//int DniDoKonca;
	
	vector <Book > SpisKsiazek;
	DaneWypozyczajacego * Wypozyczajacy;
public:
	Biblioteka() {};
	Biblioteka(string i, string n, string p)
	{
		Wypozyczajacy->imie = i;
		Wypozyczajacy->nazwisko = n;
		Wypozyczajacy->pesel = p;
		
	}
	void DodajKsiazke(Book  Ksiazka)
	{
		SpisKsiazek.push_back(Ksiazka);
	}
	void Show()
	{
		cout << SpisKsiazek.size();
	}
	
	
}; 
#include <string>
#include <iostream>
using namespace std;


class Book {
private:
	 string Tytul;
	 string Autor;
	 int rokWydania;
public:
	Book(string T, string A, int n);
	



	friend class Biblioteka;
}; 
#include "Ksiazka.h"

Book::Book(string T, string A, int r)
{
	this->Tytul = T;
	this->Autor = A;
	this->rokWydania = r;
}
 

a main:

#include <iostream>
#include "Ksiazka.h"
#include "Biblioteka.h"

int main()
{
	Book * Ksiazka = new Book("Wladca pierscieni", "Tokien", 1950);
	Book * Druga = new Book("Podrecznik do fizyki", "Jedrzejczak", 2009);
	
	Biblioteka * MojaKartaBiblioteczna = new Biblioteka("Igor", "Igor", "97061901252");
	MojaKartaBiblioteczna->DodajKsiazke(*Ksiazka);
	MojaKartaBiblioteczna->DodajKsiazke(*Druga);
	MojaKartaBiblioteczna->Show;

	system("pause");
}

 

Błąd wywala podczas każdej próby dostania się do vectora. Tutaj aktualnie chcę wyświetlić sam rozmiar tablicy, ale problemy występują również podczas odczytania poszczególnych pól z danego indeksu Vectora.
Błąd to
Error C3867 'Biblioteka::Show': non-standard syntax; use '&' to create a pointer to member

Kombinowałem także z utworzeniem Vectora wskaźników, również wyskakiwał taki sam błąd.
Bardzo proszę o pomoc, pozdrawiam

3
MojaKartaBiblioteczna->Show;

wywolujesz jako zmienna (a jest to funkcja) brakuje Ci ()

do tego nie uzywaj new/delete. Zapoznaj sie z RAII (smart pointery) ktore weszly w C++11 (prawie 6 lat temu)

3

Nie wiem co ma temat do kodu, tu nie ma żadnego wektora wskaźników. Masz za to zbędne wywołania new (po cholerę?), łamanie SRP, brak nawiasów wywołujących metodę Show i kilka innych typowych błędów, takich jak np. przyjmowanie przez wartość zamiast const&.

3

Chyba za dużo javy miałeś, jak używasz new, to musisz użyc później delete!

0

Dzięki wszystkim za rady, będę kombinował. Pozdrawiam

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