用静态数组覆盖指针属性
Override a pointer attribute with a static array
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();
};
这是我的代码。我想知道如何在父 class chlnglck
.
中提及 ress
属性
有没有办法知道我必须在子 classes 中使用固定大小的数组?
编辑:我的意思是:我最终可以在父级中声明一个指针,以通过子级中的固定大小数组覆盖它吗? (似乎不太可能,但不得不问作为最终线索)
没有std::string
请。
您也许可以使用模板解决它:
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> {};
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;
}
};
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();
};
这是我的代码。我想知道如何在父 class chlnglck
.
ress
属性
有没有办法知道我必须在子 classes 中使用固定大小的数组? 编辑:我的意思是:我最终可以在父级中声明一个指针,以通过子级中的固定大小数组覆盖它吗? (似乎不太可能,但不得不问作为最终线索)
没有std::string
请。
您也许可以使用模板解决它:
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> {};
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;
}
};