hi,
ich möchte eine class tMenu erstellen, die per tMenu::init(a,b) zur Laufzeit einen array tMenu::array[a][b] erzeugen kann.
In der Art:
Code:
class tMenu {
protected:
public:
tMenu () :
{ }
char CAPTLEN;
char MENULEN;
void init(char captlen, char menulen) {
CAPTLEN = captlen;
MENULEN = menulen;
}
char list[MENULEN][CAPTLEN];
};
//
klar geht das so nicht, wegen const für array-Dimensionen -
aber wie kriegt man es dennoch hin?
- - - Aktualisiert - - -
ich bin jetzt 1 Schritt weiter, über assert -
leider kann ich damit nur einen 1-dim array erstellen, keinen 2-dim.
wie geht das denn nun wohl...?
Code:
#include <cassert>
class tMenu {
protected:
char * list;
char MENULEN, CAPTLEN;
public:
tMenu (char menulen, char captlen) // constructor
{
assert(menulen > 0);
assert(captlen > 0);
list = new char[menulen];
// list = new char[menulen][captlen]; // alternat. >> error!
MENULEN = menulen;
CAPTLEN = captlen;
}
~tMenu() // destructor
{
// Dynamically delete the array we allocated earlier
delete[] list ;
}
};
Lesezeichen