Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Erste Schritte mit Methoden...hilfe!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
17.01.2004, 21:58 Uhr
virtuel



hi, ich bins wieder, damit es nicht wieder heisst: ich würds nicht selber versuchen, hab ich schon einige Ansätze:

ok, ich soll einen geeigneten Verbund ‚Rechteck’ erstellen mit den Datenkomponenten ‚ Punkt linksoben“ und „double breite, hoehe; dann soll ich feststellen ob der Punkt p innerhalb, auf dem Rand oder ausserhalb dieses Rechteckes liegt und ob das Rechteck sich mit dem Rechteck x schneidet.

Mein Ansatz:

C++:
enum Position {aussen, innen, rand};
Punkt {double x, y};                // oder muss ich das eher so machen?:        
                                            // struct Punkt {double x, y}
Position wo (Punkt p);             // ?mit dieser Methode will ich feststellen, wo
                                          // sich der Punkt befindet
bool schnitt (Rechteck x);       // mit dieser Methode möchte ich feststellen
                                          // ob sich das Rechteck mit dem Rechteck
                                         // x schneidet, d.h. mit x gemeinsame Punkte
                                         // hat (true) oder nicht, deshalb habe ich bool
                                         // genommen


Ist das soweit richtig?

Ich denke ich muss das Rechteck, wovon die Rede ist, noch deklarieren!

Mein Ansatz:

C++:
struct Rechteck {                         // Deklaration von Rechteck
    float seite_1;
    float seite_2;
    float schnitt ();
};

float Rechteck::schnitt () {                   // Definition von schnitt
   return....? komme nicht weiter....
}

bool schnitt ( Punkt p1, Punkt p2){    // äähm wie bestimme ich den
                     ...                          // schnittpunkt? muss ich hier mit
}                                      // vektoren arbeiten


Also, ich weiss im Moment gar nicht mehr weiter, vielleicht, hab ich schon zu viele Fehler eingebaut!
Könnt ihr mir weiterhelfen?


Bearbeitung von Pablo:

Bitte, CPP tags verwenden. Ein User des Forums sollte das von alleine tun!


Dieser Post wurde am 17.01.2004 um 22:07 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.01.2004, 22:17 Uhr
Pablo
Supertux
(Operator)


Punkt {double x, y}; // oder muss ich das eher so machen?:

ja, du musst struct benutzen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.01.2004, 22:55 Uhr
virtuel



also anstelle dieses ‚ sollten Anführungszeichen stehen "", ist wohl beim kopieren und eifügen was schief gelaufen.

also gut

struct Punkt {double x, y}

und was ist mit dem rest?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.01.2004, 10:02 Uhr
derphilipder



Entweder Klassen und Methoden oder Structs und Funktionen...

C++:
struct Rechteck {                         // Deklaration von Rechteck
    float seite_1;
    float seite_2;
    float schnitt ();
};

float Rechteck::schnitt () {                   // Definition von schnitt
   return....? komme nicht weiter....
}




Für ein struct kannst du keinen Methode definieren.
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.01.2004, 10:21 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:
derphilipder postete
Für ein struct kannst du keinen Methode definieren.

Doch, jedenfalls wenn wir über C++ reden:
Ein struct ist einfach nur ein Typ, wo defaultmässig alles public ist:

C++:
struct X
{
...
};


ist identisch mit

C++:
class X
{
public:
...
};


Und das hier:

C++:
class X
{
...
};


ist identisch mit

C++:
struct X
{
private:
...
};


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 18.01.2004 um 10:21 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.01.2004, 10:38 Uhr
derphilipder



Aber der Bereichsoperator :: ist doch nur auf Klassen und Namespaces anwendbar, oder?
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
18.01.2004, 10:44 Uhr
derphilipder



@virtual
Hab mal n bisschen rumgespielt...hast anscheinend recht.
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.01.2004, 12:26 Uhr
virtual
Sexiest Bit alive
(Operator)


Nee, der Bereichsoperator ist auf jede Art von Namespace anwendbar:
Er ist soagr soanwendbar:

C++:
extern void foo(); // globale Routine

class Socket
{
public:
     int foo() { return ::foo(); } // ruft globales foo auf
};


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
18.01.2004, 15:49 Uhr
virtuel



also wir arbeiten mit C++. Mit class, public und private dürfen wir noch nicht arbeiten. Hier müssen wir mit Methoden Arbeiten, dann wäre wohl struct, wenn ich euch richtig verstanden habe, nicht angebracht. Wie sieht es denn jetzt aus mit der Definition von Methode "wo" und der Methode "schnitt"? komme irgendwie nicht weiter.

gruss virtuel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
18.01.2004, 16:12 Uhr
Hans
Library Walker
(Operator)


Hallo virtuel,
doch, struct ist angebracht, denn das gab es schon in C (ohne ++) und kommt ganz ohne objekt orientiertheit aus.
Was ich allerdings nicht verstehe ist, das ihr mit Methoden arbeiten sollt, aber class, public und private nicht benutzen dürft. Da herscht wahrscheinlich eine Verwirrung der Begriffe vor. Denn unter Methoden versteht man meistens Unterprogramme bzw. Funktionen eines Objektorientiert arbeitenden Programms. Die Methoden sind dabei jene Funktionen, die mit den Objekten arbeiten dürfen, bzw. deren Daten verändern können. Und diese Methoden werden in öffentliche (public) und private (private) unterschieden. Sie werden immer in einer Klasse (class) definiert.
Das was ihr jetzt aber machen sollt, ist nicht Objektorientiert, denn die Elemente, die die OOP ausmachen, eben Klassen, öffentliche und private Methoden (Funktionen) sollt ihr ja gerade nicht benutzen.
Also bleiben die Elemente über, die es schon vor der "Erfindung" der OOP gab, und dazu gehört struct, und Funktionen, denen man die Struktur (oder einen Zeiger auf selbige) übergibt, damit sie damit arbeiten können.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: