两个问题?

古布 DHC 2003-12-15 12:54:25
enum CursorMovements { BACK, HOME, MOVE };

(1): class Screen {
public:
int home();
Screen& move( CursorMovements &);
}
int ( Screen::*pm) () = &Screen::home;
int ( Screen::*pm) () = Screen::home;
请问这两句有区别吗?
(2): Screen& Screen::move( CursorMovements & cm )
{
//....
}

为什么编译总是通不过?说无效得重载!请问枚举类型可作为形参吗?
这个题在:c++ prime 537页.


...全文
10 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
HUENKE 2003-12-15
up
回复
i_jianyong 2003-12-15
不好意思,上面第(2)点说错了。枚举参数是可以作引用传递的,当然在调用时必须用一个枚举变量做实参,不能直接用枚举值。

无效重载的原因是仅通过区分传值和传引用是无法实现重载的。
回复
i_jianyong 2003-12-15
(1)没有区别
(2)枚举参数不能引用传递
回复
layman2008 2003-12-15
(1): 当然有区别了&是返回地址,而第二个是值
(2): 重载要参数类型不一样
回复
发动态
发帖子
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
社区公告
暂无公告