为什么在构造函数初始化程序中初始化 const char 数组成员不兼容?

拉胡尔

我有一个带有重载构造函数的测试类。通过字符串文字初始化 const char 数组成员工作正常。但是,通过 const char * 初始化会出现错误 -

错误:将“const char*”分配给“const char [25]”时类型不兼容

class Test
{
    const char d_arr[25];
public:
    Test() : d_arr("Test Class") {}
    Test(const char * arr) : d_arr(arr) {}
};

如何解决这个问题?

尼特什

您正在分配一个指向数组的指针,这是不允许的。

即您不能执行以下操作:

const char *arr = "ABC";
const char d_arr[25] = arr;

您需要做的是手动复制字符,即:

Test(const char * arr) {
 size_t index = 0;
 if (arr) {
  while (arr[index] && index < 24) {
   d_arr[index] = arr[index];
   ++index;
  }
 }
 d_arr[index] = 0;
}

话虽如此,正如评论中所说,最好使用 std::string。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在构造函数中初始化const数组

来自分类Dev

从'const char *'到struct中的'char'/未初始化const成员的无效转换

来自分类Dev

C ++中的struct char数组成员初始化

来自分类Dev

初始化一个 const char* 数组

来自分类Dev

在构造函数中初始化const char *-会发生内存泄漏吗?

来自分类Dev

初始化 const 成员并使用父构造函数

来自分类Dev

MSVC为什么不初始化此const结构?

来自分类Dev

将类中已初始化的const成员传递给Base构造函数?

来自分类Dev

从构造函数中的std :: istream初始化const类数据成员

来自分类Dev

C中char数组的异常初始化程序

来自分类Dev

char数组初始化程序中的多余元素

来自分类Dev

如何在C ++中初始化char * const argv []

来自分类Dev

在C中初始化char数组

来自分类Dev

为什么此静态const char *初始化体系结构是特定的?

来自分类Dev

如果缺少const char *数组初始化逗号,则生成编译器警告

来自分类Dev

数组成员的初始化程序无效

来自分类Dev

为什么我不能在结构中初始化char数组

来自分类Dev

在构造函数中使用输出参数函数初始化const成员的调用的代码比lambda简单

来自分类Dev

C ++中类数组成员的初始化

来自分类Dev

为什么不能将类内初始化的const const std :: string`设为静态成员

来自分类Dev

用已删除的副本构造函数初始化const引用成员

来自分类Dev

为什么在使用之前不初始化C ++ const模板化矢量?

来自分类Dev

使用字符串文字初始化构造函数中的std :: array <char,x>成员。GCC错误?

来自分类Dev

使用字符串文字初始化构造函数中的std :: array <char,x>成员。GCC错误?

来自分类Dev

静态const成员变量初始化

来自分类Dev

初始化const成员变量

来自分类Dev

初始化列表中const引用成员的初始化

来自分类Dev

删除类的复制构造函数时,初始化类的数组成员

来自分类Dev

每个构造函数成员初始化器列表初始化const数据成员,错误:没有匹配的调用函数

Related 相关文章

  1. 1

    在构造函数中初始化const数组

  2. 2

    从'const char *'到struct中的'char'/未初始化const成员的无效转换

  3. 3

    C ++中的struct char数组成员初始化

  4. 4

    初始化一个 const char* 数组

  5. 5

    在构造函数中初始化const char *-会发生内存泄漏吗?

  6. 6

    初始化 const 成员并使用父构造函数

  7. 7

    MSVC为什么不初始化此const结构?

  8. 8

    将类中已初始化的const成员传递给Base构造函数?

  9. 9

    从构造函数中的std :: istream初始化const类数据成员

  10. 10

    C中char数组的异常初始化程序

  11. 11

    char数组初始化程序中的多余元素

  12. 12

    如何在C ++中初始化char * const argv []

  13. 13

    在C中初始化char数组

  14. 14

    为什么此静态const char *初始化体系结构是特定的?

  15. 15

    如果缺少const char *数组初始化逗号,则生成编译器警告

  16. 16

    数组成员的初始化程序无效

  17. 17

    为什么我不能在结构中初始化char数组

  18. 18

    在构造函数中使用输出参数函数初始化const成员的调用的代码比lambda简单

  19. 19

    C ++中类数组成员的初始化

  20. 20

    为什么不能将类内初始化的const const std :: string`设为静态成员

  21. 21

    用已删除的副本构造函数初始化const引用成员

  22. 22

    为什么在使用之前不初始化C ++ const模板化矢量?

  23. 23

    使用字符串文字初始化构造函数中的std :: array <char,x>成员。GCC错误?

  24. 24

    使用字符串文字初始化构造函数中的std :: array <char,x>成员。GCC错误?

  25. 25

    静态const成员变量初始化

  26. 26

    初始化const成员变量

  27. 27

    初始化列表中const引用成员的初始化

  28. 28

    删除类的复制构造函数时,初始化类的数组成员

  29. 29

    每个构造函数成员初始化器列表初始化const数据成员,错误:没有匹配的调用函数

热门标签

归档