无法从“ const std :: string [3]”转换为“ std :: string”

马克西姆·雅莫里克(Maxim Yarmolik)

这是我的代码:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

template<int N>
class Arguments
{
protected:
    string arguments[N];
public:
    Arguments(const string(&arg)[N]) : arguments{ arg } {}
    string operator[](const int &i) const { return arguments[i]; }
};

int main()
{
    string arr[3] = { "arg1", "arg2", "arg3" };
    Arguments<3> args(arr);

    cout << args[2];

    return 0;
}

这是我得到的错误:

Severity    Code    Description Project File    Line    Suppression State
Error   C2440   'initializing': cannot convert from 'const std::string [3]' to 'std::string'    
coursework_draft    C:\dev\coursework_draft\coursework_draft\coursework_draft.cpp   13  

我需要更改什么?

约翰

数组在C ++中不可复制。所以这永远都行不通

 Arguments(const string(&arg)[N]) : arguments{ arg } {}

您可以std::array<std::string, N>改用它,也可以在构造函数的主体中逐元素复制数组元素。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将std :: string转换为const tchar *

const转发参考给出错误C2440:“正在初始化”:无法从“ const std :: string”转换为“ const std :: string &&”

错误:无法将'std :: basic_string <char> :: iterator ...'转换为'const char * for parameter'1'...'

C ++错误:无法将'std :: basic_string <char>'转换为'const char *'

错误:无法从'std :: string * {aka std :: basic_string <char> *}'转换为'std :: string {aka std :: basic_string <char>}'||

c++ 无法将 'std::string' {aka 'std::__cxx11::basic_string'} 转换为 'std::string (*)[3]' {aka 'std::__cxx11::basic_string (*)[3] '}

C ++ const char *转换为std :: string&

如何将std :: string转换为const char *或char *?

将 const char 转换为 std::string 作为标题

std :: string强制转换为const char *在std :: unordered_set <const char *>中找不到

来自'std :: string(*)(std :: ofstream&,const string&,std :: string,int的无效转换

传递路径作为参数时,出现“错误:无法将'std :: __ cxx11 :: string * {aka std :: __ cxx11 :: basic_string <char> *}'转换为'const char *'错误

无法将“std::__cxx11::string {aka std::__cxx11::basic_string<char>}”转换为“LPCSTR {aka const char*}”

将std :: ostream转换为std :: string

如何将“ std :: vector <std :: string>”转换为“ const char * array”?

错误无法在赋值中将 'std::string* {aka std::basic_string<char>*}' 转换为 'node*'

std :: string转换为char *

从std :: string转换为SAString

std :: string和const char *

无法将std :: string转换为日期类型

无法将参数1从“ *”转换为“ std :: string”

Swig无法将python3的字节对象转换为std :: string

如何将 const char& 转换为 const std::string&?

将Platform :: String转换为std :: string

将 string::iterator 转换为 std::string

错误:请求从“const char”转换为非标量类型“std::string”{aka 'std::__cxx11::basic_string<char>'}

将std :: __ cxx11 :: string转换为std :: string

我的 C++ 尝试将 std::vector<std::string> 转换为 JSON 无法编译

“const std::string &getStr” vs “std::string getStr”