gpt4 book ai didi

c++ - 错误 C2440 : '=' : cannot convert from 'std::string []' to 'std::string []'

转载 作者:太空狗 更新时间:2023-10-29 20:18:50 26 4
gpt4 key购买 nike

现在这段代码出了什么问题!

标题:

#pragma once
#include <string>
using namespace std;

class Menu
{
public:
Menu(string []);
~Menu(void);

};

实现:

#include "Menu.h"

string _choices[];

Menu::Menu(string items[])
{
_choices = items;
}

Menu::~Menu(void)
{
}

编译器报错:

error C2440: '=' : cannot convert from 'std::string []' to 'std::string []'
There are no conversions to array types, although there are conversions to references or pointers to arrays

没有转换!那么它讲的是什么?

请帮忙,只需要传递一个该死的字符串数组并将其设置为 Menu 类的 _choices[] 属性。

谢谢

最佳答案

无法分配数组,而且您的数组也没有大小。你可能只想要一个 std::vector : std::vector<std::string> .这是一个动态字符串数组,可以很好地分配。

// Menu.h
#include <string>
#include <vector>

// **Never** use `using namespace` in a header,
// and rarely in a source file.

class Menu
{
public:
Menu(const std::vector<std::string>& items); // pass by const-reference

// do not define and implement an empty
// destructor, let the compiler do it
};

// Menu.cpp
#include "Menu.h"

// what's with the global? should this be a member?
std::vector<std::string> _choices;

Menu::Menu(const std::vector<std::string>& items)
{
_choices = items; // copies each element
}

关于c++ - 错误 C2440 : '=' : cannot convert from 'std::string []' to 'std::string []' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3031336/

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