关于C++的基础问题:在结构体中能够定义string变量????
如:structtest{stringstr;};之后在main函数中为什么不能赋值;intmain(){testtest1={"strtest"};return0;}这...
如:struct test
{
string str;
};
之后在main函数中为什么不能赋值;
int main()
{
test test1={"strtest"};
return 0;
}
这样之后就会报错;
求解:为什么??还是因为在结构体中不能定义string变量????
using std::string;已经声明
谢谢各位的回答!主要问题是
如果将name变量声明为字符数组,则可以使用初始化列表进行初始化,如
struct test
{
char name[20];
};
则在main函数中可以这样初始化:
int main()
{
test test1{"strTest"};
return 0;
}
这样程序会正常运行,但,string name; 不行,为什么??? 展开
{
string str;
};
之后在main函数中为什么不能赋值;
int main()
{
test test1={"strtest"};
return 0;
}
这样之后就会报错;
求解:为什么??还是因为在结构体中不能定义string变量????
using std::string;已经声明
谢谢各位的回答!主要问题是
如果将name变量声明为字符数组,则可以使用初始化列表进行初始化,如
struct test
{
char name[20];
};
则在main函数中可以这样初始化:
int main()
{
test test1{"strTest"};
return 0;
}
这样程序会正常运行,但,string name; 不行,为什么??? 展开
6个回答
展开全部
应该是这样:
test test1;
test1.str={"strtest"};
因为结构体里不一定有多少变量,所以不能给结构体赋值山谨核,只能给结构体里的变量赋逗掘值晌镇,就算只有一个变量也是如此
test test1;
test1.str={"strtest"};
因为结构体里不一定有多少变量,所以不能给结构体赋值山谨核,只能给结构体里的变量赋逗掘值晌镇,就算只有一个变量也是如此
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结构带纳贺体 可以理解为 类
里面的string str 相当于一个成员变量
想想你的类蠢派里的public的成员变量怎么赋值的?
所以应该是
test test1;
test1.strtest="...."茄蔽;
里面的string str 相当于一个成员变量
想想你的类蠢派里的public的成员变量怎么赋值的?
所以应该是
test test1;
test1.strtest="...."茄蔽;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能用malloc去给你的结构体申请空间,假如使用指针的话,梁闷因为malloc对源隐string类没有对其初始化的能力,所以申请string类对象失败,你赋值的时候肯定也是失败的。但是用new来申请结构体空间的话雹渣厅,就可以赋值成功的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有错的,你可能其他地方错了
追问
如果改成字符数组就编译通过了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询