C++/ sprawdzenie zadania (konstruktory, klasy)- podstawy

0

Czesc,
rozwiazuje wlasnie zadania z C++, same podstawy. Czy moglby ktos mnie sprawdzic i odpowiedziec na kilka pytan, a takze podpowiedziec w niektorych sprawach.

Zadanie ma długą treść, ale jest chyba dosyć proste:
Na wstępie moje pytania

  • **czy jest dobrze ? **
  • **czy parametr konstruktora to inna nazwa na jego argument, tak jak w argumentach funkcji ? **
  • co oznacza ze mam stworzyc pole w klasie ? Mam stworzyc zwykla zmienna czy moze dowolny obiekt (nie podany w tresci zadania) i dopisac do niego pole ? **
    -
    jak mam zrobic punkt "Jeżeli w obu konstruktorach jeżeli parametr czyjestTUner jest prawdą konstrutor na ekranie ma wyświetlić napis "Prawie jak telewizor"**
    Oto treść:
    Zdefiniowac klase CKrotkofalowka, która posiada:
  • konstruktor posiadajacy jeden parametr int liczbaKanalow
  • pole liczbaKanalow

Zdefiniu klase CEkran, która posiada:

  • konstruktor o parametrach int szerokosc, int wysokosc
  • konstruktor o parametrach int szerokosc, int wysokosc, int czestotliwosc
  • pola szerokosc, wysokosc, czestotliwosc

Zdefiniuj dwie klasy CCRT oraz CLCD dziedziączace publicznie po klasie CMOnitor
Klasa CLCD ma posiadać:

  • pole CGlosnik
  • konstruktor o parametrach int szerokosc, int wysokosc, int liczKanalow (ostatni parametr ma byc parametrem z wartoscia domyslna= 1)
  • konstruktor o parametrach int szerokosc, int wykosc, int czestotliwosc, int liczKanalow

Klasa CCRT ma posiadać:

  • pole bool czyJestTuner
  • konstruktor o parametrach int szerokosc, int wysokosc, bool czyJestTuner
  • konstruktor o parametrach int szeroosc, int wysokosc, int czestotliwosc, boolczyJestTuner
    w obu konstruktorach jeżeli parametr czyjestTUner jest prawdą konstrutor na ekranie ma wyświetlić napisa "Prawie jak telewizor"

Wszystkie pola mają być publiczne. Klasy nie mogą mieć zadnych inncyh pol i funkcji oprocz wyzej wymienionych . Napisz krotka funkcje main()
tworzaca instancje obu klas potomnych.

#include <iostream> 

using namespace std; 

class CKrotkofalowka {

	public:
	CKrotkofalowka(int liczbaKanalow); //konstruktor
	int liczbaKanalow; // 

};

class CEkran {
	
	public:
	CEkran(int szerokosc, int wysokosc);
	
	CEkran(int szerokosc, int wysokosc, int czestotliwosc);
	
	int szerokosc, wysokosc, czestotliwosc;
	
};

class CLCD : public CEkran {
	
	int CGlosnik; // pole glosnik ? 
	CCRT(int szeroosc, int wysokosc, int liczKanalow=1);
	CCRT(int szerokosc, int wysokosc, int czestotliwosc, int liczbaKanalow);
};




class CCRT : public CEkran {

	bool czyJestTuner; 
	CCRT(int szerokosc, int wysokosc, bool czyJestTuner);
	CCRT(int szerokosc, int wysokosc, int czestotliwosc, bool czyJestTuner);  

	

	
};

int main()
{
   return 0;
}

Dzieki z gory za poswiecony czas !

1
  • czy parametr konstruktora to inna nazwa na jego argument, tak jak w argumentach funkcji ?

Źle postawione pytanie.
Parametr w konstruktorze to to samo co w funkcji, zgadza się.
Ale funkcja ma parametry, a wywołujesz ją z argumentami, to w rzeczywistości całkiem spora różnica:

void foo(int a, int b) { }

Funkcja foo ma 2 parametry.

foo(2, 3);

Wywołujesz funkcję foo z argumentami 2 i 3.

  • co oznacza ze mam stworzyc pole w klasie ? Mam stworzyc zwykla zmienna czy moze dowolny obiekt (nie podany w tresci zadania) i dopisac do niego pole ?

Pewnie zależy od kontekstu skoro pytasz, ale pole klasy to zmienna w klasie - czyli masz stworzyć zmienną.
Jeśli chodzi o - pole CGlosnik - tutaj z kontekstu trochę wynika jakbyś miał faktycznie stworzyć nową klasę, i dodać pole typu CGlosnik

  • jak mam zrobic punkt "Jeżeli w obu konstruktorach jeżeli parametr czyjestTUner jest prawdą konstrutor na ekranie ma wyświetlić napis "Prawie jak telewizor"

Jakieś niepolskie to zdanie...

Ale domyślam się że chodzi o coś w rodzaju:

if (czyJestTuner) { cout << "Prawie jak telewizor"; }

===

Co jest źle -

Napisz krotka funkcje main() tworzaca instancje obu klas potomnych.

U Ciebie main nic nie robi.

No i konstruktory są puste, powinny przypisywać swoje paramerty do pól, np:

class CKrotkofalowka {
 
        public:
        CKrotkofalowka(int liczbaKanalow) : liczbaKanalow(liczbaKanalow) { }
        int liczbaKanalow;
};
0

"No i konstruktory są puste, powinny przypisywać swoje argumenty do pól, np:"

Mhm, co masz na myśli, tj. dlaczego powinny przypisywać swoje argumenty do pól ? W zadaniu nie ma takowego polecenia, czy mam to robic automatycznie, z zasady ?

Jeżeli w obu konstruktorach parametr czyjestTUner jest prawdą konstrutor na ekranie ma wyświetlić napis "Prawie jak telewizor".

Domyślalm się że skoro parametr czyjestTuner jest w tym przypadku zmienna typu bool (przyjmującą wartości

Muszę zadeklarować, w obu konstruktorach "jakoś" false i true, ale nie wiem jak to zrobić ;/

2
msm napisał(a):
  • czy parametr konstruktora to inna nazwa na jego argument, tak jak w argumentach funkcji ?

Źle postawione pytanie.
Parametr w konstruktorze to to samo co w funkcji, zgadza się.
Ale funkcja ma argumenty, a wywołujesz ją z parametrami, to w rzeczywistości całkiem spora różnica:

void foo(int a, int b) { }

Funkcja foo ma 2 argumenty.

foo(2, 3);

Wywołujesz funkcję foo z parametrami 2 i 3.

nie jest aby odwrotnie? "Parametr" rozumiany jako parametr formalny jest pewnego rodzaju uogólnieniem argumentów - parametrów aktualnych czyli w zasadzie jest to parametr, który podajemy podczas deklaracji funkcji. Natomiast parametry aktualne czyli tzw. argumenty są już konkretnymi wartościami czy też konkretyzacją parametrów formalnych podawane podczas wywoływania funkcji.

0

A wiecie moze jak sprawdzic te wartosci typu bool ?

0

A wiecie moze jak sprawdzic te wartosci typu bool ?

Jakie wartości typu bool? Jeśli chodzi o bool czyJestTuner to już napisałem, sprawdzasz czy czyJestTuner == true, jeśli tak to wypisujesz na ekran "prawie jak telewizor" - przynajmniej tak wynika z zadania...

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