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

c++ konstruktory i destruktory

Object Storage Arubacloud
0 głosów
454 wizyt
pytanie zadane 25 czerwca 2017 w C i C++ przez wojo44 Nowicjusz (160 p.)

Chciałem zrobić sobie przykład dla zrozumienia konstruktorów i destruktorów. Niestety kompilator pokazuje mi błąd "error: extra qualification 'ciasteczka::' on member 'ciasteczka'". Nie wiem o co chodzi i mam coraz większy mętlik w głowie.

#include<iostream>

using namespace std;

class ciasteczka
{
    public:
    int brat1, brat2, siostra1, siostra2;

    public:
    ciasteczka::ciasteczka()
    {
        cout << "Ile lat ma pierwszy brat? : ";
        cin >> brat1;
        cout << "\n" << "Ile lat ma drugi brat? : ";
        cin >> brat2;
        cout << "\n" << "Ile lat ma pierwsza siostra? : ";
        cin >> siostra1;
        cout << "\n" << "Ile lat ma druga siostra? : ";
        cin >> siostra2;

        cout << "\n\n\nPierwszy brat dostanie " << brat1 << " ciasteczek\n";
        cout << "Drugi brat dostanie " <<brat2 << " ciasteczek\n";
        cout << "Pierwsza siostra dostanie " << siostra1 << " ciasteczek\n";
        cout << "Druga siostra dostanie " << siostra2 << " ciasteczek\n";
    }

    ~ciasteczka() {};
};


int main()
{
    ciasteczka abc;

    cin.get();
    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 25 czerwca 2017 przez niezalogowany
edycja 30 sierpnia 2017

Gdy metodę umieszczasz w ciele klasy nie musisz wskazywać do jakiej klasy ona należy (tak samo ze zmiennymi) - jest to błędem. Kompilator szuka w tym momencie klasy ciasteczka w klasie ciasteczka. 

public:
     ciasteczka(){...}
komentarz 25 czerwca 2017 przez wojo44 Nowicjusz (160 p.)

czyli nie wpisywać ciasteczka::ciasteczka(), a zamiast tego samo ciasteczka() ? Czy wiadomo będzie, że to konstruktor a nie zwykła funkcja? Jestem bardzo początkujący, potrzebuję łopatologicznego wytłumaczenia smiley

komentarz 25 czerwca 2017 przez niezalogowany
edycja 25 czerwca 2017

Tak będzie wiadomo ;) Warto nadmienić, że nazwy klas pisze się wielką literą (i konstruktorów). Gdybyś pisał metody poza klasą, albo w osobnych plikach to wtedy musiałbyś używać operatora zasięgu, ale w klasie nadal musiałbyś umieścić prototypy metod bez zasięgu:

class Ciasteczka
{
public:
    int brat1, brat2, siostra1, siostra2;

public:
        
    Ciasteczka();
    ~Ciasteczka();
    
};

Ciasteczka::Ciasteczka()
{
    cout << "Ile lat ma pierwszy brat? : ";
    cin >> brat1;
    cout << "\n" << "Ile lat ma drugi brat? : ";
    cin >> brat2;
    cout << "\n" << "Ile lat ma pierwsza siostra? : ";
    cin >> siostra1;
    cout << "\n" << "Ile lat ma druga siostra? : ";
    cin >> siostra2;

    cout << "\n\n\nPierwszy brat dostanie " << brat1 << " ciasteczek\n";
    cout << "Drugi brat dostanie " <<brat2 << " ciasteczek\n";
    cout << "Pierwsza siostra dostanie " << siostra1 << " ciasteczek\n";
    cout << "Druga siostra dostanie " << siostra2 << " ciasteczek\n";
}

Ciasteczka::~Ciasteczka() {}

Podobne pytania

0 głosów
2 odpowiedzi 522 wizyt
0 głosów
1 odpowiedź 728 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...