Cześć,
mam do napisania dość trudny jak dla mnie i przede wszystkim skomplikowany program w C++, nie podołałem wszystkim poleceniom, a i te które udało mi się wykonać mogą być wykonane błędnie. Jestem otwarty na Wasze propozycje jak i uwagi dotyczące błędów które pewnie są :)
**
Mam problem z punktami pogrubionymi **
Co to znaczy że parametry konstruktora inicjują zmienne ? Czy to znaczy że mam parametry w ciele konstruktora po prostu przypisac do zmiennych i to bedzie ta INICJACJA ?
Mam dość długie polecenie:
Do alokowania pamięci można użyc tylko operacji new/delete;
Do wyświetlania i wczytywania tylko zmiennych cin/cout
W każdym zadaniu należy pamiętac o dołączeniu niezbędnych plików nagłowkowych
DEKLARACJE
Poniższe zadanie ma składać się z trzech plików. Deklaracja klasy ma być napisania w pliku*.h, a definicje metod klasy oraz definicja funkcji main w dwóch różnych plikach *.cpp.
- Stworz klase Csmietnik posiadającą następujące pola i funkcje:
- prywatne pole A typu int,
- prywatne pole B typu float.
- 15-elementowa chroniona tablice znakow C.
- publiczny wskaznik D na typ short,
- publiczną statyczną skłądową E typu long (pole ma być zainicjowane wartością 0)
- chronioną stałą F typu short,
**7. **publiczny konstruktor bezparametrowy inicjujący zmienne A, B, C, D, F odpowiednio liczbami 1, 2.5, piętnastoma literami „a” (należy użyc petli), NULLem, -13.
**8. **chroniony konstruktor dwuparametrowy – parametry inicjują zmiene A i B, tablica C pozostacje niezainicjowana, zmienna D ma być inicjowana NULLem, zmienna F wartościa -13.
**9. **publiczną funkcję wyswietl() wypisującą w jednej linii zmiene A, B, E, F i wszystkie komorki tablicy C. Wartosci maja być oddzielone spacjami.
**10. **Publiczny jednoparametrowy konstruktor który dla wskaznika D tworzy tablice shortow o rozmiarze zadanym w parametrze i wypelnia ja kolejnymi liczbami calkowytmi (należy uzyc petli) poczynajac od wartosci -5 (czyli -5, -4, -3, -2, -1, 0, 1, 2...)
11. Napisz funkcje ALADEEN w której utworzysz automatyczna 10-elementowa tablice elementow Csmietnik a następnie dla kazdego elementu wywolasz metode wyswietl().
PLIK Z DEKLARACJAMI – conio.hpp
#ifndef conio_hpp
#define conio_hpp
class Csmietnik{
public:
CSmietnik *D= new short; // nie wiem czy to jest dobrze
static long E = 0;
Csmietnik(); // 1 konstruktor bezparametrowy
void wyswietl();
Csmietnik (int x); // drugi jednoparametrowy kostruktor, czy moge nazwac go tak samo ?
~Csmietnik();
~Csmietnik(int x);
private:
int A;
float B;
protected:
tab[15]={C};
short int F;
};
#endif
PLIK Z DEFINICJAMI – conio.cpp
#include ”conio.hpp”
using namespace std;
void ustaw (int x, float y, lng int j, short int i, tab[j]) // będzie porzadkowac elementy do metody wyswietl, tak zeby nie pomieszaly sie typy
{
x=A;
y=B;
j=E;
i=F;
tab[j]=tab[15]={C};
void wyswietl(int x, float y, long int j, short int i, tab[j])
{
cout << x << y << j << i << j << endl;
}
// moge od razu ot tak napisac nazwe konstruktora i zostanie on rozpoznany ? w stylu:
Csmietnik( ) // bezparametrowy, znaczy się że nie może przyjmować żadnych argumentów ? Tak ?
{
int a[15], i;
for(i=0; i<15; i++)
{
a[i]="C"; // **to nie moze sie udac, bo w ten sposob przypisuje kazdej komorce od 0 do 15, licząc o jeden wzwyż, przypisuje literę, a zmienna i jest typu int, więc chyba trzeba by wykonać rzutowanie ? Prawda ? JEśli tak to jak? **
}