Moin,
das ist eigentlich alles kein Problem. Leider postest du hier keine Fehlermeldung.
Fehlermeldung kommt keine, nur ist der Wert in der int main() nicht verfügbar.
class Device{
public:
Device(char* devicelist);
~Device();int device_number;
const char* id[];struct device_data{
const char* name;
const char* description;
const char* filename;
} *p_device;private:
ezxml_t DeviceList(char* device_list);
std::string devices_e;
char devices_c[];
};Ich vermute mal, dass du die Struktur oder die Instanz der Struktur nicht public gemacht hast.
Die Struktur ist also Public.
if(device[device_counter].name = ezxml_attr(attribute_list, "id"));
Was ist denn device? Das muss eine Variable sein. Ein Mitglied deiner
Device-Klasse ist es jedenfalls nicht.
Ich vermute mal:
Device::device_data device[];
oder
Device::device_data* device;
und dann irgendsowas wie
device = MyDevice.p_Device;
wobei MyDevice eine Instanz der Klasse Device ist.
(Wobei "device_counter" über eine for()-Schleife erhöht wird)
Jetzt kann ich innerhalb der Klasse auf device[0].name zugreifen.
Wenn ich allerdings aus der int main() auf diesen Wert zugreifen will:Device dev(devicefile);
cout << dev.device[0].name << endl;Kommt die Meldung, das "device" kein Member der Klasse Device ist. Wenn ich per *p_device zugreifen will, klappt es auch nicht.
s. o. Daraus folgt dann die Fehlermeldung.
Und, was heißt "klappt es auch nicht"? Fehlermeldung (dann bitte den Inhalt) oder Fehlverhalten (was erwartest du und was passiert) oder was? Kristallkugeln sind zur Zeit ausverkauft und z. B. dev.p_device->name sollte legal sein.
Insgesammt will ich ein Array in der Klasse erzeugen, auf dessen Werte ich in der main() zugreifen kann. Mit Werten ausserhalb der Struktur klappt es ja auch ;)
Bisher hatte ich noch nie eine STruktur innerhalb einer Klasse, deshalb ist das ein problem für mich, und ich komm einfach nicht weiter :(