Co zostanie wypisane do strumienia cout po wykonaniu sie programu?

0

#include <iostream>
using namespace std;

#define BLEDNY_ZNAK

class OgolnyWyjatek
{
public:
OgolnyWyjatek()
{ cout << "kOW" << endl; }

~OgolnyWyjatek()
{ cout << "dOW" << endl; }

void wyswietl()
{ cout << "OW" << endl; }

};

class WyjatekInt : public OgolnyWyjatek
{
public:
WyjatekInt(int wartosc): wartosc(wartosc)
{ cout << "kWI" << endl; }

WyjatekInt(const WyjatekInt &w) 
{ cout << "kkWI" << endl; }

~WyjatekInt()
{ cout << "dWI" << endl; }

void wyswietl()
{ cout << wartosc << endl; }

private:
int wartosc:
};

class MojObiekt
{
public:
MojObiekt(int i=1) { cout << "kMO" << i << endl; }
~MojObiekt() { cout << "dMO" << endl; }
void dzialaj(char c)
{
if (c=='w') throw WyjatekInt(BLEDNY_ZNAK);
cout << c << endl;
}
};

void wyswietlWyjatek(OgolnyWyjatek *w)
{ w->wyswietl(); }

int _tmain(int argc, _TCHAR* argv[])
{
try
{
MojObiekt mo;
mo.dzialaj('w');
mo.dzialaj('q');
}
catch(WyjatekInt &wyjatek)
{
wyswietlWyjatek((OgolnyWyjatek*)&wyjatek);
wyjatek.wyswietl();
}

vector <MojObiekt> moje_obiekty(3);
MojObiekt moj_obiekt(3);

return 0;

}

0

Bardzo proszę o pomoc w nauce :)

0

Nic, bo program się nie wykona.

0

Wklej na http://ideone.com/ i zobacz sam

0

w załączniku przesyłam zadanie, może coś źle przepisałem :)

1

Jeśli chodzi Ci o to co zostało wypisane to takie coś:

kMO1
kOW
kWI
dMO
OW
1
dWI
dOW
kMO1
kMO1
kMO1
kMO3
dMO
dMO
dMO
dMO
0

Dzięki! :) A tu?

1
kMO3
q
kOW
kWS
dMO
bledny znak
OW
dWS
dOW
kMO3
kMO1
dMO
dMO
0

Kurdyban! Dziś na tym forum powiedziałem że jest to 4programmers.net/Forum a nie forum.4cheaters.net, widać się myliłem, czas na przemianowanie.

0

Teraz coś innego: Muszę wskazać błędy w tych kodach i napisać co to za błąd.
Przepraszam, że tak męczę ale mam noc żeby to wszystko jakoś ogarnąć przed zaliczeniem, a nie mam nikogo kto byłby mi w stanie pomóc.

5

Nikt o zdrowych zmyslach nie uwaza, ze powinienes zaliczyc...

0

Chłopaki, wstukałem to wszystko, powyskakiwały mi błędy tylko jak teraz to rozszyfrować? Błedów mam 38
tu kod:

#include <iostream>
using namespace std;

void funkcja(int &a)
{
a=0;
}

void funkcja2(auto_ptr<int> wsk)
{
*wsk = 2;
}

int _tmain(int argc, _TCHAR* argv[])
{
auto_ptr<int> wskaznik1(new int(4));

funkcja2(wskaznik1);
cout << *wskaznik1;

shared_ptr<double> wskaznik2(new double());
decltype(wskaznik2) zmienna3;
zmienna3 = wskaznik2;

*wskaznik2 = 4.3;
cout << "Wartosc pod adresem wskaznik2: " << zmienna3;

vector<int> liczby(10);
int licznik = 0;
int sum = 0;
for (auto i: liczby)
{
	i = (licznik++) +1;
}

cout << liczby[1];
assert(liczby[1]++1);

funkcja(4);
funkcja(liczby[5]);

return 0;

}

2

Czytaj komunikaty kompilatora, dopóki nie jesteś zaawansowanym w programowaniu poprawiaj zawsze tylko pierwszy błąd, po czym jeszcze raz kompilujesz.

0

No i stanąłem, nie mam pojęcia co czynić z linijką w której występuje "auto".
Obecnie kod wygląda tak: (poradziłem sobie jeszcze z assertem, dodałem #include <assert.h> i #define NDEBUG)

#include <iostream>
#include <memory>
#include <tchar.h>
#include <vector>
#include <assert.h>
#define NDEBUG

using namespace std;

void funkcja (int &a)
{
a=0;
}

void funkcja2(auto_ptr<int> wsk)
{
*wsk = 2;
}

int tmain(int argc, _TCHAR* argv[])
{
auto_ptr<int> wskaznik1(new int(4));

funkcja2(wskaznik1);
cout << *wskaznik1;

shared_ptr<double> wskaznik2(new double());
decltype(wskaznik2) zmienna3;
zmienna3 = wskaznik2;

*wskaznik2 = 4.3;
cout << "Wartosc pod adresem wskaznik2: " << zmienna3;

vector<int> liczby(10);
int licznik = 0;
int sum = 0;

for (auto  i: liczby)
{
	i = (licznik++) +1;
}

cout << liczby[1];
assert(liczby[1]==1);

funkcja(4);
funkcja(liczby[5]);

return 0;

}

0

A co ty chcesz z tą i nie użyta i już - to ostrzeżenie, miałeś poprawić błędy.
To że traktujesz ostrzeżenia jako błędy to dobry znak, ale nie na to zadanie.
Jeżeli tak już chcesz go się pozbyć to wyświetl to i

1
Jajkosinho napisał(a):

No i stanąłem, nie mam pojęcia co czynić z linijką w której występuje "auto".

Nie wiem czy o to chodziło, ale kompiluje się i działa.

#include <iostream>
#include <memory>
#include <vector>
#include <assert.h>
#define NDEBUG

using namespace std;

void funkcja (int &a)
{
    a = 0;
}
 
void funkcja2(auto_ptr<int> wsk)
{
    *wsk = 2;
}
 
int main(int argc, char* argv[])
{
    auto_ptr<int> wskaznik1(new int(4));
 
    funkcja2(wskaznik1);
    
    cout << &wskaznik1 << endl;
 
    shared_ptr<double> wskaznik2(new double());
    decltype(wskaznik2) zmienna3;
    zmienna3 = wskaznik2;
 
    *wskaznik2 = 4.3;
    cout << "Wartosc pod adresem wskaznik2: " << zmienna3 << endl;
 
    vector<int> liczby(10);
    int licznik = 0;
    int sum = 0;

    for (auto  i: liczby)
    {
        i = (licznik++) +1;
    }
    
    cout << liczby[1];
    
    assert(liczby[1]!=1);
 
    int four = 4;
    funkcja(four);
    
    funkcja(liczby[5]);
 
    return EXIT_SUCCESS;
}

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