C++中使用strcpy()函数需要#include<cstring>吗?
例如下诉语句:strcpy((ps+0)->name,"MochaMunch");为何我使用VC6.0在头文件中只用了#include<iostream>也能调用strc...
例如下诉语句:
strcpy((ps+0)->name, "Mocha Munch");
为何我使用VC6.0在头文件中只用了#include<iostream>也能调用strcpy函数
用<string>能调用strcpy()吗?
<cstring>和<string>效果一样吗?
用new创建动态数据时:
CandyBar * ps=(CandyBar*)new CandyBar[3]等价于CandyBar * ps=new CandyBar[3]吗?需要这样(CandyBar*)强制类型转换吗? 展开
strcpy((ps+0)->name, "Mocha Munch");
为何我使用VC6.0在头文件中只用了#include<iostream>也能调用strcpy函数
用<string>能调用strcpy()吗?
<cstring>和<string>效果一样吗?
用new创建动态数据时:
CandyBar * ps=(CandyBar*)new CandyBar[3]等价于CandyBar * ps=new CandyBar[3]吗?需要这样(CandyBar*)强制类型转换吗? 展开
2个回答
展开全部
这不是好几个问题吗?
1.STL库会隐性载入一些C类库,所以iostream里面已经include了strcpy申明的头文件了。我记得有一个对应表的,那些C类库被隐性包含,但我不记得那里找了。
2.<string>包不包含不知道,你自己做做实验吧
3.<cstring>和<string>是两个完全不一样的东西。后者是STL string类的头文件,前者是C++类库对C类库<string.h>的封装(其实内部就只是加了一个namespace,再include了<string.h>而已)
4.不需要类型强制转换,new出来的时候就是相应的类型了,一般new的东西都不需要类型转换(因为只有本类型指针或者需要cast成父类指针这两种可能,后者会做隐式类型转换)。
1.STL库会隐性载入一些C类库,所以iostream里面已经include了strcpy申明的头文件了。我记得有一个对应表的,那些C类库被隐性包含,但我不记得那里找了。
2.<string>包不包含不知道,你自己做做实验吧
3.<cstring>和<string>是两个完全不一样的东西。后者是STL string类的头文件,前者是C++类库对C类库<string.h>的封装(其实内部就只是加了一个namespace,再include了<string.h>而已)
4.不需要类型强制转换,new出来的时候就是相应的类型了,一般new的东西都不需要类型转换(因为只有本类型指针或者需要cast成父类指针这两种可能,后者会做隐式类型转换)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询