struct werte zuweisen
-
hi leutz,
bin grad dabei umzusteigen von ada auf c++, hab da ne frage, hab ein struct gemacht:
struct spielkarte{
int oben;
int rechts;
int unten;
int links;
};wie kann ich jetzt auf einmal werte zuweisen geht des so in der art?
spielkarte X;
X={ 1,2,3,4}; ?cya ben
-
Moin!
So geht das :
spielkarte X; X.oben = 1; X.rechts = 2; X.unten = 3; X.links = 4;
Über den '.' Operator bekommst du Zugriff auf Elemente von Objekten und somit auch auf Strukturen.
-
des weiss ich, mir gehts drum die alle auf einmal zuweisen zu können alla
spielkarte[1]={1,2,3,4};
wenn ich das ausserhalb einer funktion, also global mache gehts aber innerhalb geht es nicht weiss einer wieso?
-
ben12345 schrieb:
wenn ich das ausserhalb einer funktion, also global mache gehts aber innerhalb geht es nicht weiss einer wieso?
Du kannst bei der Initialisierung werten zuweisen. z.B.:
spielkarte t = {1, 2, 3, 4};
oder du kannst ein Сonstructor benutzen:
struct spielkarte {public: spielkarte (int voben, int vrechts, int vuntent, int vlinks): oben (voben), rechts (vrechts), untent (vunten), links (vlinks) {;} protected: int oben; int rechts; int unten; int links; }
dann kannst du schreiben:
spielkarte r; r = spielkart (1, 2, 3, 4); // Vergiss es nicht ein copy constructor zu schreiben // wenn spielkart zeigern enthaelt!
Dabei kannst du eine initialisierung funcktion benutzen.
-
Dabei im C99 und im GCC also du kannst immer schreben (nich nur bei der Initialisierung):
struct speilkarte t; t = (struct spielkarte) {1, 2, 3, 4};
-
danke!
ich hab des problem, dass ich 9 karten habe und diese eigentlich über einen array haben wollte, ich probiers mal mit nem konstruktor, obs damit geht...
thx
-
enum typ {kvorne,khinten,rthinten,rtvorne,ovorne,ohinten,revorne,rehinten};
struct karte {
typ oben;
typ rechts;
typ unten;
typ links;
};void main()
{
karte spielkarte1= {rthinten,kvorne,revorne,ohinten};
karte spielkarte2 = {rehinten,ovorne,rtvorne,khinten};
karte spielkarte3 = {rehinten,ovorne,rtvorne,ohinten};
karte spielkarte4 = {rthinten,kvorne,ovorne,rthinten};
karte spielkarte5 = {rthinten,kvorne,revorne,khinten};
karte spielkarte6 = {rthinten,ovorne,revorne,khinten};
karte spielkarte7 = {rthinten,kvorne,rtvorne,rehinten};
karte spielkarte8 = {rehinten,ohinten,ovorne,kvorne};
karte spielkarte9 = {rehinten,ohinten,kvorne,ovorne};
}ich würd des gerne machen, das ich sie spielkarte als array definiere und zwar global, geht des über des zweite?
-
itman schrieb:
Dabei im C99 und im GCC also du kannst immer schreben (nich nur bei der Initialisierung):
struct speilkarte t; t = (struct spielkarte) {1, 2, 3, 4};
des struct kommt aber schon oben hin?
-
des struct kommt aber schon oben hin?
Meinst du struct Definition?
Wenn du spielkarte as array initialisieren (und global auch) moechte du kannst folgendes schrebein:
karte spielkarte[10]={ {rthinten,kvorne,revorne,ohinten}, {rehinten,ovorne,rtvorne,khinten}, {rehinten,ovorne,rtvorne,ohinten}, {rthinten,kvorne,ovorne,rthinten}, {rthinten,kvorne,revorne,khinten}, {rthinten,ovorne,revorne,khinten}, {rthinten,kvorne,rtvorne,rehinten}, {rehinten,ohinten,ovorne,kvorne}, {rehinten,ohinten,kvorne,ovorne} }
-
danke genau des hab ich gesucht,
jetzt hab ich nur noch ein kleines problem, ich hab wenn ich des in einer function aufrufe den fehler:
int links_pruefen(int kartennr) { if (spielkarte[kartennr-1].rechts = rthinten and spielkarte[kartennr]=rtvorne) return true;
fehler: c:\dokume1\vabene1\eigene~1\projekte\hello\puzzle.cpp:41: `rthinten' undeclared (first use this function)