结构和类的初始化问题

caoyiwen19830726 2009-03-04 03:34:38
假设我定义了一个名字为MyStruct的结构体,以及一个名字为MyClass的类。则在初始化时候,是不是应该用如下语句:
MyStruct *pMyStruct = new MyStruct;
MyClass myclass = new MyClass();

我要问的就是可以用 MyStruct pMyStruct = new MyStruct;
MyClass *myclass = new MyClass();
这样的语句来初始化吗?如果不行,原因是什么?谢谢!
...全文
90 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jakqigle 2009-03-04
  • 打赏
  • 举报
回复
new 返回的是指针,内存分配失败时返回NULL
foreverglcz 2009-03-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ctan 的回复:]
new 操作符返回的是指针,
所以只能
MyStruct *pMyStruct = new MyStruct();
MyClass *pmyclass = new MyClass();
而不能
MyStruct mystruct = new MyStruct();
MyClass myclass = new MyClass();
[/Quote]

UP,应该用指针来接收new的返回值。
ctan 2009-03-04
  • 打赏
  • 举报
回复
new 操作符返回的是指针,
所以只能
MyStruct *pMyStruct = new MyStruct();
MyClass *pmyclass = new MyClass();
而不能
MyStruct mystruct = new MyStruct();
MyClass myclass = new MyClass();
csjtxy 2009-03-04
  • 打赏
  • 举报
回复
1楼不错
biosli 2009-03-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 caoyiwen19830726 的帖子:]
假设我定义了一个名字为MyStruct的结构体,以及一个名字为MyClass的类。则在初始化时候,是不是应该用如下语句:
MyStruct *pMyStruct = new MyStruct;
MyClass myclass = new MyClass();

我要问的就是可以用 MyStruct pMyStruct = new MyStruct;
MyClass *myclass = new MyClass();
这样的语句来初始化吗?如果不行,原因是什么?谢谢!
[/Quote]
MyClass myclass = new MyClass();
MyStruct pMyStruct = new MyStruct;
C++下:
你这两种方法都编译不过去。
new函数执行完了是返回一个指针。
你那一个对象过去和一个指针赋值显然是有错误的。
当然,如果你重载了等号操作符另当别论。
xuruichen 2009-03-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arong1234 的回复:]
MyStruct pMyStruct = new MyStruct;
这句是错误的
这不是C++的语法,更象C#的语法
原因是new返回的是MyStruct*
不能用于初始化MyStruct
对于类也一样
[/Quote]
没用过C#
OenAuth.Net 2009-03-04
  • 打赏
  • 举报
回复
new 的返回类型就是个指针,所以不能。呵呵
arong1234 2009-03-04
  • 打赏
  • 举报
回复
MyStruct pMyStruct = new MyStruct;
这句是错误的
这不是C++的语法,更象C#的语法
原因是new返回的是MyStruct*
不能用于初始化MyStruct
对于类也一样

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧