Nauka na egzamin z C++

0

Witam
Mam taki mały problem z programem z C++. Uczę się właśnie na egzamin z tego języka i nie rozumiem jednego. Mam taki oto program:

 #include <iostream>

void wypisz()
{
	std::cout << 'C';
}
class Czas{
	int sek;
	void wypisz() const { std::cout << 'c' << sek<<std::endl; }
public:
	Czas() :sek(0){ wypisz(); }
	Czas(int s) :sek(s){ wypisz(); }
	Czas(int m, int s) :sek(m * 60 + s){ wypisz(); }
	Czas(int h, int m, int s) :sek(3600 * h + 60 * m + s){ wypisz(); }

};

int main()
{
	Czas t1();
	Czas t2(2);
	Czas t3(1, 5);
	Czas t4(2, 0, 6);
	getchar();
        return 0;
}

I nie rozumiem dlaczego nie wyswietla sie metoda wypisz z konstruktora bezparametrowego. Poprawne odpowiedzi to wyswietlenie: c2,c65,c7206. Dlaczego nie wyswietli sie jeszcze na poczatku c0?

EDIT
Byl tam jeden maly blad
przy obiekcie t2 zgubilem parametr :D

0

W takim wypadku byłoby tak jak myślisz: http://ideone.com/Orv0Fi

0

kod poprawiony

0
 #include <iostream>
 #include <stdio.h>

void wypisz()
{
    std::cout << 'C';
}
class Czas{
    int sek;
    void wypisz() const { std::cout << 'c' << sek<<std::endl; }
public:
    Czas() :sek(0){ wypisz(); }
    Czas(int s) :sek(s){ wypisz(); }
    Czas(int m, int s) :sek(m * 60 + s){ wypisz(); }
    Czas(int h, int m, int s) :sek(3600 * h + 60 * m + s){ wypisz(); }

};

int main()
{
    Czas t1();
    Czas t2(2);
    Czas t3(1, 5);
    Czas t4(2, 0, 6);
    getchar();
    return 0;
}
0

ok juz wiem;)
dzieki za pomoc

0

Kolejny problem :

#include <iostream>
class A{
public:
	A(int = 0){ std::cout << "JAJCO" << std::endl; }
	A(A &w) { std::cout << 'K'<<std::endl; }
	void operator=(A& w){std::cout << '='<<std::endl; }
};

A fun(A x)
{
	A z;
	z = x;
	
	return z;
	
}
int main()
{
	A a = A(5);
	fun(a);
	A b = a;
	getchar();
return 0;
} 

Jak to sie wykonuje bo za chiny ludowe tego nie moge zrozumiec.

0

Nie wykonuje się bo nie ma implicite konstruktora kopiującego (z const ref). Po zamianie na const ref, wykonuje się normalnie.

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