nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

class mit privatem struct und initialisierung

Von: Robert Hartmann (robert_hartmann@gmx.net) [Profil]
Datum: 25.06.2009 16:17
Message-ID: <h200s1$211q$1@ariadne.rz.tu-clausthal.de>
Newsgroup: de.comp.lang.iso-c++
Hallo zusammen,

syntaktisch ist es ja möglich eine Klasse zudefinieren,
die einen private struct enthält, beispielsweise sowas:

class MyClass {
private:
const size_t ID;
struct countThe{
size_t foo;
size_t ba;
} countThe;
public:
MyClass();
MyClass(size_t i);
MyClass(size_t f, size_t b);
/* und weitere Sachen */
};


Ich weiß, dass man Variablen/Attribute bei
der Implementierung des Konstruktors über
die Initialisierungsliste mit Werten belegen kann
und ggf auch muss.

Mein Problem ist nun, dass ich nicht herausbekomme,
wie ich den privaten struct mit Werten versehen kann.

Könnt Ihr mir da auf die Sprünge helfen?

Mein Versuche mit unten angegebenem Code enden mit folgenden
Compilerfehlern:


****COMPILER MELDUNGEN*****

g++ -fmessage-length=0 -Wall -pedantic ClassStruct.cpp
ClassStruct.cpp: In constructor `MyClass::MyClass()':
ClassStruct.cpp:17: error: expected `(' before '.' token
ClassStruct.cpp:17: error: expected `{' before '.' token
ClassStruct.cpp: At global scope:
ClassStruct.cpp:17: error: expected unqualified-id before '.' token
ClassStruct.cpp:17: error: expected `,' or `;' before '.' token
ClassStruct.cpp: In constructor `MyClass::MyClass(size_t)':
ClassStruct.cpp:24: error: no matching function for call to
`MyClass::countThe::countThe(int, int)'
ClassStruct.cpp:5: note: candidates are: MyClass::countThe::countThe()
ClassStruct.cpp:5: note:
MyClass::countThe::countThe(const MyClass::countThe&)
ClassStruct.cpp: In constructor `MyClass::MyClass(size_t, size_t)':
ClassStruct.cpp:29: error: expected `(' before '{' token
ClassStruct.cpp:29: error: `foo' undeclared (first use this function)
ClassStruct.cpp:29: error: (Each undeclared identifier is reported only
once for each function it appears in.)
ClassStruct.cpp:29: error: `ba' undeclared (first use this function)
ClassStruct.cpp:29: error: expected `;' before '}' token
ClassStruct.cpp: At global scope:
ClassStruct.cpp:30: error: expected unqualified-id before '{' token
ClassStruct.cpp:30: error: expected `,' or `;' before '{' token
ClassStruct.cpp:32:2: warning: no newline at end of file



/****INHALT ClassStruct.cpp*****/

#include<cstdlib>  //wegen size_t

class MyClass {
private:
const size_t ID;
struct countThe{
size_t foo;
size_t ba;
} countThe;
public:
MyClass();
MyClass(size_t i);
MyClass(size_t f, size_t b);
/* und weitere Sachen */
};

MyClass::MyClass():
ID(0), countThe.foo(0), countThe.ba(0)
{
// sonstiges was der Konstruktor so tun soll.
}

MyClass::MyClass(size_t i):
ID(i), countThe(5,8)
{
// sonstiges was der Konstruktor so tun soll.
}

MyClass::MyClass(size_t f, size_t b):
ID(42), countThe{foo=f, ba=b}
{
// sonstiges was der Konstruktor so tun soll.
}

/*****************************/



Gruß Robert

[ Auf dieses Posting antworten ]

Antworten