typedef struct chlnglck{
    friend struct chlnglck_8;
    friend struct chlnglck_10;
    friend struct chlnglck_12;

    chlng nb;
    uint64_t wt;
}chlnglck;

struct chlnglck_8 : chlnglck{
    char ress[255];
    chlnglck_8();
};

struct chlnglck_10 : chlnglck{
    char ress[1024];
    chlnglck_10();
};

Voici mon code. Je voudrais savoir comment je pourrais mentionner l'attribut ress dans la classe parent chlnglck.

Y a-t-il un moyen ou non de savoir que je dois utiliser un tableau de taille fixe dans les classes enfants? Edit: Ce que je voulais dire était le suivant: Puis-je éventuellement déclarer un pointeur dans le parent pour le remplacer via un tableau de taille fixe dans l'enfant. (Cela semblait improbable mais a dû demander comme indice éventuel)

Non std::string s'il vous plaît.

0
Ludovic Zenohate Lagouardette 29 déc. 2015 à 13:14

2 réponses

Meilleure réponse

Vous pouvez peut-être le résoudre à l'aide de modèles:

template<size_t N>
struct chlnglck
{
    chlng nb;
    uint64_t wt;

    std::array<char, N> ress;
};

struct chlnglck_8 : chlnglck<256> {};

struct chlnglck_10 : chlnglck<1024> {};
4
Some programmer dude 29 déc. 2015 à 10:21
typedef struct chlnglck{
    friend struct chlnglck_8;
    friend struct chlnglck_10;
    friend struct chlnglck_12;

    uint64_t wt;
    char *ress;
}chlnglck;

struct chlnglck_8 : chlnglck{       
    chlnglck_8(){
        ress = new char[255];
    }
    ~chlnglck_8(){
        delete []ress;
    }
};

struct chlnglck_10 : chlnglck{        
    chlnglck_10(){
        ress = new char[1024];
    }
    ~chlnglck_10(){
        delete []ress;
    }
};
0
Abhishek Kumar 29 déc. 2015 à 10:36