c++中string 数组初始化的问题。
在类声明一个string类型的动态数组string*Trans;在构造函数中初始化Trans=newstring{"123","456"};结果显示语法错误:缺少“;”(...
在类声明一个string类型的动态数组 string* Trans;
在构造函数中初始化 Trans=new string{"123", "456"};
结果显示
语法错误:缺少“;”(在“{”的前面)
语法错误:缺少“;”(在“}”的前面)
哪位大侠能帮忙解决一下,顺便讲解一下错误原因。
如果改为Trans=new string("123","456");//即将花括号改为小括号
编译没有问题,Trans[0]里的数据为"123"也没问题,但Trans[1]里的数据乱码。 展开
在构造函数中初始化 Trans=new string{"123", "456"};
结果显示
语法错误:缺少“;”(在“{”的前面)
语法错误:缺少“;”(在“}”的前面)
哪位大侠能帮忙解决一下,顺便讲解一下错误原因。
如果改为Trans=new string("123","456");//即将花括号改为小括号
编译没有问题,Trans[0]里的数据为"123"也没问题,但Trans[1]里的数据乱码。 展开
5个回答
展开全部
显然的嘛,如果改为Trans=new string("123","456"),那么Trans[0]就是*Trans了 而此时Trans[1]没有定义 所以会乱码 乱码原因是你访问了没有定义过的地方
追问
我的原意是Trans为一个数组,Trans[0]="123",Trans[1]="456"。怎么改呢?
追答
string *Trans[2];
Trans[0]=new string("123");
Trans[1]=new string("456");
这也写应该可以的
因为string *Trans是定义了基类型为string的指针,只能指向string型变量...
展开全部
Trans=new string{"123", "456"};
应改为
Trans=new string("123");
应改为
Trans=new string("123");
追问
我的原意是Tran为一个数组,Trans[0]="123",Trans[1]="456"。
追答
那就应该这样写:
string* Trans;
Trans=new string[2];
Trans[0]="123";
Trans[1]="456";
用new分配的数组是不能显式初始化的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string sarr[] = {"123", "456"};
string *Trans = sarr;
string *Trans = sarr;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string类
已知类String的原型为:
class String
{
public:
String(const char *str = NULL);// 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operator =(const String &other);// 赋值函数
private:
char *m_data;// 用于保存字符串
};
你的写法是错误的。
修改为:
string * Trans;
Trans = new string("123");
数组定义:
string * Trans;
Trans = new string[2];
Trans[0] = "123";
Trans[1] = "456";
已知类String的原型为:
class String
{
public:
String(const char *str = NULL);// 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operator =(const String &other);// 赋值函数
private:
char *m_data;// 用于保存字符串
};
你的写法是错误的。
修改为:
string * Trans;
Trans = new string("123");
数组定义:
string * Trans;
Trans = new string[2];
Trans[0] = "123";
Trans[1] = "456";
追问
但是 String picName[4] ={"123","2041","135","15"};
这样赋值是没有问题的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是给坐标赋值吧 Trans不能设置成字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询