gpt4 book ai didi

c++ - 如何在类构造函数中初始化数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:26 27 4
gpt4 key购买 nike

Xcode 工作在 Mac OS X Leopard在 C++ 中:

我有以下代码:

class Foo{

private:
string bars[];

public:
Foo(string initial_bars[]){
bars = initial_bars;
}
}

它不编译并抛出以下错误:

error: incompatible types in assignment of 'std::string*' to 'std::string [0u]'

我注意到删除行 bars = initial_bars; 解决了问题。看来我没有正确完成作业。我该如何解决这个问题?

编辑:

变量 bars 是一个字符串数组。在主函数中,我像这样初始化它:

string bars[] = {"bar1", "bar2", "bar3"};

但它可以包含任意数量的成员。

最佳答案

数组的行为类似于 const 指针,您不能为它们分配指针。您也不能直接将数组分配给彼此。

你要么

  • 使用指针成员变量
  • 有一个固定大小的bar你得到并用它的内容初始化你的成员数组
  • 只需使用对 std 容器的引用,例如 std::vector

关于c++ - 如何在类构造函数中初始化数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469033/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com