Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用静态数组重写指针属性_C++_Oop_C++11_C Strings - Fatal编程技术网

C++ 使用静态数组重写指针属性

C++ 使用静态数组重写指针属性,c++,oop,c++11,c-strings,C++,Oop,C++11,C Strings,这是我的密码。我想知道如何在父类chlnglck中提到ress属性 有没有办法或者不知道我必须在子类中使用固定大小的数组? 编辑:我的意思是:我最终可以在父对象中声明一个指针,通过子对象中的固定大小数组覆盖它。(似乎不太可能,但不得不问一下作为最终的线索) 请不要使用std::string。您可以使用模板解决此问题: typedef struct chlnglck{ friend struct chlnglck_8; friend struct chlnglck_10;

这是我的密码。我想知道如何在父类
chlnglck
中提到
ress
属性

有没有办法或者不知道我必须在子类中使用固定大小的数组? 编辑:我的意思是:我最终可以在父对象中声明一个指针,通过子对象中的固定大小数组覆盖它。(似乎不太可能,但不得不问一下作为最终的线索)


请不要使用
std::string

您可以使用模板解决此问题:

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();
};
模板
结构chlnglck
{
chlnb;
uint64_t wt;
阵列ress;
};
结构chlnglck_8:chlnglck{};
结构chlnglck_10:chlnglck{};

您或许可以使用模板解决此问题:

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();
};
模板
结构chlnglck
{
chlnb;
uint64_t wt;
阵列ress;
};
结构chlnglck_8:chlnglck{};
结构chlnglck_10:chlnglck{};

无法“重写”成员变量。顺便说一下,构造函数的名称必须与结构相同(例如
chlnglck_8();
)如何“提及”?你是说继承它吗?我一点也不懂你最后的第二句话。请你详细解释一下好吗?请不要std::字符串我不明白你为什么认为
std::string
与你的问题有任何关系。解释你想要什么的最好方法是展示一段代码,演示你想如何使用它。没有办法“重写”成员变量。顺便说一句,构造函数的名称必须与结构相同(例如,
chlnglck_8();
)如何“提及”?你的意思是继承它吗?我一点也不理解你最后的第二句话。请你解释得更透彻一点好吗?请不要std::string。--我不明白你为什么认为
std::string
与你的问题有任何关系。解释你想要什么的最好方法是展示一段代码,演示我想了一会儿这个解决方案,但是它看起来不太好,很野蛮(但是,这不是我以前用过的最野蛮的东西)。但是,我喜欢它非常静态。但是我会用另一个。非常感谢。我想了一会儿这个解决方案,但是它看起来很不好,很野蛮(不过,这不是我以前用过的最野蛮的东西)。不过,我喜欢它非常静态。不过我会用另一个。非常感谢。
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;
    }
};