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

Visual Studio nieobsługiwany wyjatek

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
558 wizyt
pytanie zadane 19 stycznia 2020 w C i C++ przez BezBarwny Użytkownik (700 p.)

siema zacząłem pisac krótki program i pomimo całej kompilacji wyskakuje mi jakis nie obsługiwany wyjątek

#include <iostream>

using namespace std;



class Pojazd
{
public:
    string nazwa;
public:

    virtual void jedz() { cout << "jade" << endl; };

    Pojazd(string _nazwa) : aMember(0)
    {
        nazwa = _nazwa;
        cout << "Konstruktor: Pojazd()" << endl;
    }
    ~Pojazd()
    {
        cout << "Destruktor: ~Pojazd()" << endl;
    }
    int aMember;
};
class Lodz
{

public:
    double wypornosc;
public:

    Lodz(double _wypornosc) : bMember(0)
    {
        wypornosc = _wypornosc;
        cout << "Konstruktor: Lodz()" << endl;
    }
    ~Lodz()
    {
        cout << "Destruktor: ~Lodz()" << endl;
    }
    int bMember;
};

class Amfibia : public Pojazd, public Lodz
{
public:
    Amfibia() : Pojazd(nazwa), Lodz(wypornosc), cMember(0)
    {
        cout << "Konstruktor: Amfibia()" << endl;
    }
    ~Amfibia()
    {
        cout << "Destruktor: ~Amfibia()" << endl;
    }
    int cMember;
};
int main()
{
    Amfibia obj;
    obj.aMember = 0;
    obj.bMember = 1;
    obj.cMember = 2;
    return 0;
}

 

komentarz 19 stycznia 2020 przez tkz Nałogowiec (41,960 p.)
A jak on brzmi?
komentarz 19 stycznia 2020 przez BezBarwny Użytkownik (700 p.)
Nieobsłużony wyjątek w lokalizacji 0x75F935D2 w aamfibia.exe: wyjątek języka Microsoft C++: std::bad_alloc w lokalizacji pamięci 0x010FF080.
komentarz 19 stycznia 2020 przez tkz Nałogowiec (41,960 p.)
Spójrz na 48 linie, czym inicjalizujesz obiekty?
komentarz 19 stycznia 2020 przez BezBarwny Użytkownik (700 p.)
szczerze nie wiem jak to powinno wyglądać możesz to pokazac lub wytłumaczyc?
komentarz 19 stycznia 2020 przez tkz Nałogowiec (41,960 p.)

Na szybko by działało. 

Amfibia() : Pojazd(nazwa), Lodz(wypornosc), cMember(0) //to
Amfibia(string nazwa, double wypornosc) : Pojazd(nazwa), Lodz(wypornosc), cMember(0) // na to

Twoje obiekty w pierwszej wersji były inizjalizowane, właściwie niczym, że dziedziczysz po wszystkim po czym się da, nie miałeś compile-time error'u. Problem był gdy chciałeś wywołać obiekt z wyrażeniami "widmo". 

komentarz 19 stycznia 2020 przez BezBarwny Użytkownik (700 p.)
faktycznie masz racje tylko teraz nie moge wywołac obiekty w int mainie ponieważ brakuje konstruktora domyślnego
komentarz 19 stycznia 2020 przez tkz Nałogowiec (41,960 p.)
Bo go nie ma. Musisz stworzyć domyślny, który nic nie inicializuje w tym przypadku, albo używać sparametryzowanego.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 142 wizyt
pytanie zadane 10 maja 2021 w C# przez Iskiereczka Użytkownik (860 p.)
0 głosów
0 odpowiedzi 306 wizyt
pytanie zadane 19 października 2020 w C i C++ przez sebastian970 Użytkownik (710 p.)
0 głosów
1 odpowiedź 122 wizyt
pytanie zadane 19 czerwca 2020 w C i C++ przez tomek.99 Początkujący (370 p.)

90,828 zapytań

139,504 odpowiedzi

313,595 komentarzy

60,325 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...