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();
};
这是我的代码。我想知道如何在父类ress
中提及chlnglck
属性。
有没有办法知道我必须在子类中使用固定大小的数组? 编辑:我的意思是以下内容:我最终可以在父级中声明一个指针,通过子级中的固定大小数组覆盖它。 (似乎不太可能,但不得不问最终的线索)
不,std::string
请。
答案 0 :(得分:4)
您可以使用模板解决它:
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> {};
答案 1 :(得分:0)
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;
}
};