Witam
Czy może ktoś zerknąc na kod i powiedzieć co jest w nim nie tak??? Jest to kod który jest przekształcony z Javy (tam działał). Natomiast w C# nie chce:/ Chciałem tu zastosować przeciążenie operatorów i chyba tu tkwi problem). A oto kodzik
[code]
using System;
using System.Collections.Generic;
using System.Text;
class Fala
{
protected internal double y_max, y_min, wysokosc;
public static Fala operator *(Fala a, Fala b)
{
Fala f = new Fala();
f = a * b;
return f;
}
public static Fala operator /(Fala a, Fala b)
{
Fala f = new Fala();
f = a / b;
return f;
}
internal Fala(double a, double b)
{
// konstruktor
this.y_max = a;
this.y_min = b;
}
public virtual double wysokoscFali()
{
return wysokosc = (y_max - y_min); // funkcja obliczajaca wysokosc fali
}
public virtual double wysokoscF()
{
return wysokosc;
}
}
class Prostokat : Fala
{
internal Prostokat(double a, double b)
: base(a, b)
{
}
public virtual double wysokoscProstokatu()
{
return wysokosc = (3 * (y_max - y_min) / 4); // funkcja obliczajaca wysokosc prostokatu
}
}
class Pila : Fala
{
public Pila(double a, double b)
: base(a, b)
{
}
public virtual double wysokoscPily()
{
// funkcja obliczajaca wysokosc pily
return wysokosc = ((y_max - y_min) / 2);
}
}
public class RRR
{
public static void Main(System.String[] args)
{
Fala f = new Fala(2, 1);
Pila p = new Pila(2, 1);
Prostokat p1 = new Prostokat(2, 1);
System.Console.Out.WriteLine("Wysokosc fali = " + f.wysokoscFali());
System.Console.Out.WriteLine("Wysokosc Pily = " + p.wysokoscPily());
System.Console.Out.WriteLine("Wysokosc Prostokatu = " + p1.wysokoscProstokatu());
System.Console.Out.WriteLine("Iloczyn wysokosci Fali i Prostokatu = " + (f*p).wysokoscF());
System.Console.Out.WriteLine("Iloczyn wysokosci Pily i Prostokatu = " + (p*p1).wysokoscF());
System.Console.Out.WriteLine("Iloraz wysokosci Pily i Prostokatu = " + (p/p1).wysokoscF());
System.Console.Out.WriteLine("Iloraz wysokosci Fali i Prostokatu = " + (f/p1()));
System.Console.Out.WriteLine("Iloraz wysokosci Prostokatu i Fali = " + (p1/f.wysokoscF()));
System.Console.Read();
}
}[/code]