Klasy c++

0

Witam, sprawdzi mi ktoś czy dobrze rozwiązałem te zadania? I podpunkty g i h do pomocy.

class A { double a; };

a) Dopisz do klasy konstruktor bezargumentowy, który zainicjalizuje wartość pola danych wybraną wartością.

A::A(){ a=2;};

b) Utwórz dwa obiekty klasy A. Jeden z obiektów należy utworzyć jako obiekt wartościowy, a drugi jako obiekt dynamiczny

A jeden('x'); A *wsk_dwa = new A('z');

c) Dopisz do klasy metodę, która zmieni wartość pola danych na wartość argumentu tej metody.

void funkcja(double b) {b=a};

d) Wywołaj dla każdego z utworzonych obiektów zdefiniowaną metodę.

A::funkcja(22); jeden.zmien(11); wsk_dwa->funkcja(10);

e) Dopisz do klasy metodę, która obliczy potrójna wartość pola danych i zwróci wynik jako wynik działania metody.

void fun(double x) {return x*x*x};

f) Wywołaj dla każdego z utworzonych obiektów zdefiniowaną metodę i wyświetl wynik operacji na konsoli.

wynik = nowy.fun(nowy.b); cout << wynik;

g) Przeładuj dla operator " * " jako operator dwuargumentowy. Operator należy przedefiniować w taki sposób, żę będzie on obliczał iloczyn wartości pól danych obu dodawanych obiektów, Przeładowanie operatora należy realizować w postaci funkcji.

h) Wykorzystaj przeładowaną metodę do wykonania działania na obydwu utworzonych obiektach. Wynik działania wyświetl na konsoli.

1

Zacząłem pisać odpowiedzi odnośnie punktów ale to bez sensu. Zrób to po bożemu, stwórz sobie klasę i dla każdego punktu ją modyfikuj. Co trzeba to wywołaj w main i sprawdź.
Masz teraz takie bzdurne błędy jak void w funkcji która ma coś zwracać albo przypisywanie czegoś do argumentu funkcji.

0
brave10 napisał(a):

Witam, sprawdzi mi ktoś czy dobrze rozwiązałem te zadania? I podpunkty g i h do pomocy.
b) Utwórz dwa obiekty klasy A. Jeden z obiektów należy utworzyć jako obiekt wartościowy, a drugi jako obiekt dynamiczny

A jeden('x'); A *wsk_dwa = new A('z');

skoro masz konstruktor bezargumentowy to dlaczego tworzysz obiekt używając argument typu char?

c) Dopisz do klasy metodę, która zmieni wartość pola danych na wartość argumentu tej metody.

void funkcja(double b) {b=a};

b=a? bez sensu, teraz zastanów się dlaczego. Nazwa funkcja niewiele też mówi co ona robi, lepiej by było np. zmodyfikuj_pole_a albo cokolwiek innego

e) Dopisz do klasy metodę, która obliczy potrójna wartość pola danych i zwróci wynik jako wynik działania metody.
void fun(double x) {return x*x*x};

potrójna to chyba 3*x a nie x^3

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