Witam, mam problem z dziedziczeniem tzn. chce żeby klasa dziedziczyła mi zmienną i tablice z innej klasy. Jeżeli ustawie wszystko na public to nie musze używać dziedziczenia i działa. Chciałbym zrobić tak żeby przekazywało mi zmienną i tablice które są protected jednak nie wiem jak sobie poradzić z błędem. Dodam, że dopiero zaczynam programować obiektowo. Pozdrawiam.
błąd: Błąd CS7036 Nie podano argumentu odpowiadającego wymaganemu parametrowi formalnemu „introzmiar” elementu „Wypelnij.Wypelnij(int)”
kod: https://github.com/kompa14/program/blob/master/Program.cs
0
0
Chciałbym żeby rozmiar i Przedmioty z klasy Wypelnij były protected i działała metoda z klasy Wyswietl. Jeżeli rozmiar i Przedmioty sa public to działa a gdy zmienie na protected pojawia się błąd
błąd: Błąd CS7036 Nie podano argumentu odpowiadającego wymaganemu parametrowi formalnemu „introzmiar” elementu „Wypelnij.Wypelnij(int)”
kod:
namespace plecakdynamiczny
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("ilosc przedmiotow");
int rozmiar = int.Parse(Console.ReadLine());
Console.WriteLine("____________");
Wypelnij wypelnij = new Wypelnij(rozmiar);
Wyswietl wyswietl = new Wyswietl();
wypelnij.WypelnijLosowo();
wyswietl.WyswietlPrzedmioty();
Console.ReadKey();
}
}
public class Wypelnij
{
public Wypelnij(int introzmiar)
{
rozmiar = introzmiar;
Przedmioty = new double[4, rozmiar];
}
public static int rozmiar;
public static double[,] Przedmioty;
public void WypelnijLosowo()
{
Random random = new Random();
for (int i = 0; i <= rozmiar-1; i++)
{
for (int j = 0; j <= rozmiar - 1; j++)
{
if (i == 0)
{
Przedmioty[0, j] = j;
}
else
{
Przedmioty[i, j] = random.Next(1, 5);
}
}
}
}
}
public class Wyswietl:Wypelnij
{
int introzmiar = Wypelnij.rozmiar;
public void WyswietlPrzedmioty()
{
for (int i = 0; i <= Wypelnij.rozmiar - 1; i++)
{
for (int j = 0; j <= Wypelnij.rozmiar - 1; j++)
{
Console.WriteLine(Wypelnij.Przedmioty[i, j]);
}
Console.WriteLine("----");
}
}
}
}
0
Nie wywołujesz konstruktora klasy bazowej w klasie pochodnej. W ogóle te klasy nie powinny po sobie dziedziczyć.
0
To czy powinny dziedziczyć czy nie jest tutaj akurat nieistotne. Działa, dzieki za pomoc.