Nauka na egzamin z C++

Nauka na egzamin z C++
D1
  • Rejestracja:ponad 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:57
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:

Kopiuj
 #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

edytowany 2x, ostatnio: dawid1110
spartanPAGE
  • Rejestracja:prawie 12 lat
  • Ostatnio:dzień
0

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

edytowany 1x, ostatnio: spartanPAGE
D1
  • Rejestracja:ponad 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:57
0

kod poprawiony

spartanPAGE
main wciaz zepsute
D1
w jaki sposob??
spartanPAGE
main musi zwracać int
ER
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 7 lat
  • Postów:168
0
Kopiuj
 #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;
}
D1
  • Rejestracja:ponad 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:57
0

ok juz wiem;)
dzieki za pomoc

D1
  • Rejestracja:ponad 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:57
0

Kolejny problem :

Kopiuj
#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.

satirev
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 4 lata
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.