Dziedziczenie klas i błąd "expected class name before { token"

0

Hej mam problem z dziedziczeniem gdy chce aby moja klasa pochodna byla Karta a klasa bazowa Komputer to wyskakuje mi blad expected class name before { token . Mozecie powiedziec mi co jest przyczyna bledu ?

#ifndef KARTA_H
#define KARTA_H
#include <iostream>
#include <cstdio>
#include <cstring>
#include "komputer.h"
#include "Procesor.h"

using namespace std;
class Karta:public Komputer
{
public:
	Karta();
	~Karta();
	// friend ostream & operator<< (ostream &stream, const Karta &s);
	void infokarta();
	Karta(const Karta &o);
	Karta& operator=(const Karta &p);
	Karta(string nazwa, int pamiec);
	void setNazwa(string nazwa);
private:
	string nazwa = "Nvidia";
	int pamiec = 1000;
};

#endif // KARTA_H
 
1

Słyszałem aby część była rozwinięciem całości, konkretnie głowa - rozwinięciem człowieka, ale tylko w jednym przypadku - Twarz Bo w seriale Doktor Who.
W pozostałych przypadkach to kompletne WTF

1

A od kiedy Karta Graficzna jest szczególnym przypadkiem Komputera? o_O Ja zawsze myślałem że komputer składa się między innymi z karty graficznej, no ale człowiek uczy się całe życie...

0

Kompilatory C++ analizują sensowność dziedziczenia?

0

Niestety nie :( Autor zwyczajnie zrobił literówkę w include albo strażnik naglówka mu wyciął klasę Komputer, więc brakuje mu deklaracji zapowiadającej

class Komputer;

przed tą jego chorą klasą ;]

0

Panowie na zajeciach powiedzieli mi wykladowcy ze moimi klasami pochodnymi klasami moze byc karta graficzna i procesor sami to zaproponowali. Probowalam na rozne sposoby dziedziczyc ale ciagle wyskakuje blad klasa nazywa sie Komputer a plik jest dobry komputer.h z malej nie ma literowki. Prosze o pomoc :)

0

Owszem KartaGraficzna oraz Procesor mogą być klasami pochodnym ale pochodzącymi od Podzespola nie od Komputer.
Kompilator się burzy ponieważ zrobiłeś Buty pochodzące od Studenta, czyli swoiste StudentoButy i teraz inny student próbuje te StudentoButy wzuć ale mu to nie za bardzo wychodzi ponieważ w tamtych butach już jest student przecież to nie zwykłe buty zaś StudentoButy.

1

To cię okłamali, bo to jest bardzo głupi pomysł dziedziczenia i tyle. Karta graficzna NIE JEST komputerem i już. Komputer wygląda tak:

class Komputer{
    private:
        Ram ram;
        KartaGraficzna kartaGraficzna;
        Procesor procesor;
};

I żadnej hierarchii dziedziczenia tu nie ma. Inną sprawą jest że możesz mieć np.

class ProcesorCzteroRdzeniowy: public Procesor{
//
};

class ProcesorDwurdzeniowy: public Procesor{
//
};

Albo

class DDRRam: public Ram{
//
};

class SDRam: public Ram{
//
};

Ale to co jest w 1 poście to bzdura i tyle.

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