• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed [C++]Prosty błąd w klasie w .h (Problem z konstruktorem)

Object Storage Arubacloud
0 głosów
617 wizyt
pytanie zadane 14 lipca 2015 w C i C++ przez Dorion300 Szeryf (90,250 p.)
zamknięte 15 lipca 2015 przez Dorion300

Dzień dobry.

Zrobiłem 2 małe klasy w jednym pliku.

Działa wspaniale.

Chciałem stworzyć .h tego pliku .cpp aby rozwiązać niektóre problemy.

Wyskakuje błąd w pliku .h:
ClassCS.h|28|error: expected '{' at end of input|

W czym może być mniej więcej problem?

Jak daję {} zamiast ; to cały program się rypie. (Jeszcze więcej błędów)

 

#ifndef CLASSCS_H_INCLUDED
#define CLASSCS_H_INCLUDED

#include "../main.h"

using namespace std;

const int DTyping = 2;
enum Typing
{
    test,dwa
};

class classCS
{
public:
    string nazwa;
    Typitem Typing;
    classCS(string nazwa);

};

class classCSDwa: public classCS
{
    public:
    int cyfra;
    classCSDwa(string nazwa,int cyfra) : classCS(nazwa); // tu błąd
    void randomowafunkcja();
};

#endif // CLASSCS_H_INCLUDED 

 

komentarz zamknięcia: Usunięcie ": classCS(nazwa)" pomogło.

2 odpowiedzi

+1 głos
odpowiedź 15 lipca 2015 przez Radfler VIP (101,030 p.)
wybrane 15 lipca 2015 przez Dorion300
 
Najlepsza

W linii 27 nie ma ciała konstruktora! Sama lista inicjalizacyjna nie wystarczy :)

classCSDwa(string nazwa,int cyfra)
: classCS(nazwa) { /* musi być ciało */ }
komentarz 15 lipca 2015 przez Dorion300 Szeryf (90,250 p.)
Jest w .cpp cały konstruktor.

A to jest tylko definicja.
komentarz 15 lipca 2015 przez Radfler VIP (101,030 p.)

To przenieś listę inicjalizacyjną do pliku .cpp, a w nagłówku zostaw samą deklarację:

Plik .h:

classCSDwa(string, int);

Plik .cpp:

classCSDwa(string nazwa, int cyfra)
: classCS(nazwa) { /* ciało */ }
+1 głos
odpowiedź 14 lipca 2015 przez Krawiec91 Pasjonat (19,600 p.)

W 18 linii nie powinno być tak czasem?;)
 

Typing Typitem ;

 

komentarz 14 lipca 2015 przez Krawiec91 Pasjonat (19,600 p.)
Linia 27 to jest lista inicjalizacyjna konstruktora klasy? Może dać za tym 2 klamry {} i bez średnika.
komentarz 14 lipca 2015 przez Dorion300 Szeryf (90,250 p.)
Dobrze jest napisane, gdyż to jest deklaracja obiektu z innego pliku .h, Kiedy tak robię ze wywalam srednika i zamiast tego wstawiam {} to wywala błąd ze klasa jest nie dostępna(coś w tym stylu)
komentarz 15 lipca 2015 przez adrian17 Ekspert (344,860 p.)

Dobrze jest napisane, gdyż to jest deklaracja obiektu z innego pliku .h,

Nawet jeśli tak jest, to trochę dziwne że zrobiłeś pole o nazwie Typing podczas gdy kilka linii wyżej zadeklarowałeś enum o nazwie Typing.

Kiedy tak robię ze wywalam srednika i zamiast tego wstawiam {} to wywala błąd ze klasa jest nie dostępna(coś w tym stylu)

Dodanie {} prawdopodobnie naprawiło problem, kompilator mógł pójść dalej i natrafił na inny, niezwiązany problem - musisz pokazać nowy błąd.

Podobne pytania

0 głosów
2 odpowiedzi 1,120 wizyt
pytanie zadane 31 lipca 2015 w C i C++ przez alfred Początkujący (270 p.)
0 głosów
2 odpowiedzi 208 wizyt
pytanie zadane 30 września 2015 w Java przez Damianoo4444 Bywalec (2,700 p.)
0 głosów
2 odpowiedzi 791 wizyt
pytanie zadane 22 listopada 2016 w C i C++ przez Kenzi Nowicjusz (200 p.)

92,536 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...