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

Przestrzenie nazw std

Object Storage Arubacloud
0 głosów
466 wizyt
pytanie zadane 7 września 2015 w C i C++ przez 0xf Dyskutant (8,180 p.)

Ehhh i znowu prosze o pomoc na forum, dobra od rzeczy. 

To najpierw cos o komputerze :

System:Ubuntu 14.10

Kompilator:Codeblocks

Wiec pisze sobie kod(obiektowo) w ktorym mam troche bledow wiec zeby moc dalej dzialac przy kodzie to wadliwe czesci zamieniam na notatki programisty :> (taki lifehack) no i nie wywoluje obiektow z klas w ktorych cos popsulem. 

Wiec kod jest nieco dluzszy kompiluje go odpalam i co widze :

terminate called after throwing an instance of 'std::bad_alloc'

what(): std::bad_alloc

aborted (core jumped)

No i taki mam blad

Kolejna sprawa to taka mam dwie klasy w zaden sposob nie polaczone ze soba, postanowilem zlaczyc bo napisalem w koncu funkcje ktora sluzy za swego rodzaju spaw miedzy jadna klasa a druga zeby lepiej zrozumiec moj problem posluze sie przykladem :

Opisze to kodem

#include <iostream>

using namespace std;

class Godzina
{
int liczba_minut=60;//ta zmienna okreslana jest podczas dzialania programu
};

class Dzien
{
int liczba_godzin=24; //w moim kodzie ta zmienna jest okreslana podczas dzialania programu
};

class Rok 
{
minuty_w_roku=Godzina::liczba_minut * Dzien:: liczba_godzin* 365;

public:
void wyswietl()
{
cout<<minuty_w_roku;
}

};






int main()
{
Godzina g1;
Dzien d1;
Rok r1;

r1.wyswietl();

return 0;
}

Dobra to jest przyklad calego kodu nie podam bo jest dlugi oraz nei chce dzielic sie jego zawartoscia, gruntowna przebudowa kodu nie wchodzi w gre gdyz kod bedzie scisle zalezny od samego siebie a juz napisalem spora czesc (300 linii) szacuje ze kodu napisze lacznie jakies 2000 linii moge co najwyzej dododac jakies konstruktory do klas(tak na chwile obecna ich nie robilem bo najpierw sie upewnie ze nie porobie jakis bledow).

uwagi do powyzszego kodu:

W moim programie kazda klasa ma swoje metody wiec spokojnie pozatym kazda metoda odpowiada za jakas zmienna ktora jest wykorzystywana w innych metodach tej klasy i bedzie przechodzic do innych klas (wlasnie chcialbym to zrobic ale mi nie idzie) 

Dobra to chyba tyle z gory dzieki za pomoc, gdyby byly wam potrzebne jakies szczegoly piszcze dokladnie opisze sytuacje. 

pozdrawiam 

2 odpowiedzi

0 głosów
odpowiedź 7 września 2015 przez adrian17 Ekspert (345,160 p.)

what(): std::bad_alloc

Prawdopodobnie przypadkiem zaalokowałeś całą pamięć w systemie lub za dużo elementów na raz.

minuty_w_roku=Godzina::liczba_minut * Dzien:: liczba_godzin* 365;

Poczytaj od początku o używaniu obiektów w C++, bo tu tworzysz normalne zmienne instancji a traktujesz je jak zmienne statyczne.

 

komentarz 9 września 2015 przez 0xf Dyskutant (8,180 p.)
Dzieki za odpowiedz, w sprawie zmiennych instancji moglbym prosic o jakies zrodlo, pogrzebalem przed chwila i google mnie nakierowywuje na kurs ruby.

Dzieki :D
0 głosów
odpowiedź 7 września 2015 przez Rogargol Pasjonat (16,600 p.)
Co do pierwszego bledu, to tak jak kolega wyzej wspomnial, jest to blad alokacji pamieci, musisz przyjrzec sie miejscom w ktorych dynamicznie alokujesz pamiec i w ktorych korzystasz z takich zmiennych.

Nie wiem jakie jest pytanie odnosnie drugiej czesci, bo wstawiles kod i nie bardzo wiem na co oczekujesz odpowiedzi. Zreszta nie bede sie rozwodzil, musisz zaznajomic sie z klasami, bo zmienne ktore masz sa prywatne i nie mozesz uzyskac do nich dostepu... Przerob jakis kurs, bo na ten moment masz za malo wiedzy zeby skonstruowac jakas sensowna klase.
komentarz 9 września 2015 przez 0xf Dyskutant (8,180 p.)
Mam ksiazke "Jezyk C++ szkola programowania", czy bedzie ona wystarczajaca ?

Osobiscie jej nie lubie bo za duzo w niej teorii ktorej potem nie potrafie wykorzystac, poczytanie jej konczy sie na tym ze po 2 dniach juz nic nie pamietam.
komentarz 9 września 2015 przez Rogargol Pasjonat (16,600 p.)
Przede wszystkim musisz uzywac wiedzy z ksiazki. Robic przyklady i probowac wykorzystywac zdobyta wiedze - wtedy sie utrwali.

Tej książki nie znam osobiscie, ale widze ze ma niezle opinie. Mysle ze nie powinienes miec problemu z nauczeniem sie podstaw na podstawie takiej ksiazki, ale zawsze mozesz czerpac wiedze takze z kursow internetowych.
komentarz 9 września 2015 przez 0xf Dyskutant (8,180 p.)
Przemyslalem to sobie, zrobie tak w swoim kodzie nad ktorym pracuje od dluzszego czasu bede pracowal wraz z ksiazka do weryfikacji bledow oraz ewentualnej jego poprawy.

Jestem wdzieczny za odpowiedz.

Abstrachujac od dyskusji w komentarzu to jakie razace bledy popelnilem w tym kodzie badz przy tlumaczeniu jego dzialania ?

Podobne pytania

0 głosów
1 odpowiedź 260 wizyt
0 głosów
1 odpowiedź 178 wizyt
0 głosów
1 odpowiedź 432 wizyt
pytanie zadane 30 lipca 2022 w C i C++ przez RufinB Obywatel (1,830 p.)

92,632 zapytań

141,502 odpowiedzi

319,882 komentarzy

62,015 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!

...