请问构造函数有没有返回值啊?

sea2010seadesdsf 2010-07-16 04:28:57
我测试了一下,构造函数没有返回值,但是如果执行return,就会中断初始化操作,在构造函数中使用exit();会销毁整个对象!
...全文
72 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sea2010seadesdsf 2010-07-16
谢谢啊,明白了!
回复
jianglin28290 2010-07-16
如果你非得这样做也不是不可以!这样你返回的可能是错误信息也有可能是对象,需要做判断

一般的做法是如果参数不对,将错误信息放到属性中,并设置状态为错误,然后对象判断是否错误,如果错误保存错误信息并销毁对象
回复
sea2010seadesdsf 2010-07-16
是不是说在构造函数中使用return是不规范的写法?

我知道return会造成初始化不成功,因为我要在初始化的时候判断构造函数的参数是否输入正确,不正确就不初始化,并将错误信息记录在一个成员变量中,我改用exit();的时候会将整个对象销毁,而输出错误信息的成员变量也被销毁了,什么也输出不了,只能用return才能正常执行

我这样的写法正确吗?规范吗?
回复
lonelyriver 2010-07-16
…………没有…………

回复
jianglin28290 2010-07-16
构造函数最后自动将指针返回,从严格意义上来说还是有返回值的,但是不需要自己return
如果中途return,构造函数将不执行返回对象指针的操作,最后导致对象初始化时不成功的
回复
sea2010seadesdsf 2010-07-16
那怎么构造函数也能执行return啊?
回复
jianglin28290 2010-07-16
构造函数是在内存里直接生成了一个对象,并将指针赋给变量
回复
jianglin28290 2010-07-16
构造函数没有返回值的
回复
xuzuning 2010-07-16
没有返回值
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告