例如:
#include <stdio.h>
#include <string.h>
using namespace std;
struct st
{
string name[3];
st(char X[][]) { for(int i=0; i<3; i++) name[i] = X[i];}
} Y( {"Text1", "Text2", "Text3"} );
但是Y({“Text1”,“Text2”,“Text3”})不起作用。我不知道正确的答案。请帮助。
这很好用。
struct st
{
string name;
st(char X[]) { name[i] = X;}
} Y("Text1");
答案 0 :(得分:1)
如果要注释错误的成员函数声明并用括号替换括号,那么代码将被编译。 :)
struct st
{
std::string name[3];
// std(char X[][]) { for(int i=0; i<3; i++) name[i] = X[i];}
} Y { {"Text1", "Text2", "Text3"} };
至于成员函数(似乎你想定义一个构造函数),那么它可以定义为
st( const char *s[3] )
{
for ( size_t i = 0; i < 3; i++ ) name[i] = s[i];
}
或者你可以定义像
这样的结构struct st
{
std::string name[3];
st( std::initializer_list<const char *> l )
{
size_t n = std::min<size_t>( 3, l.size() );
std::copy_n( l.begin(), n, name );
}
} Y ( {"Text1", "Text2", "Text3" } );
答案 1 :(得分:0)
使用C ++ 11
struct st
{
array<string, 3> name;
st(const array<string, 3>& name)
: name(name)
{
}
};
int main()
{
st s({ "Text1", "Text2", "Text3" });
cout << s.name[0] << endl;
}