3
A
回答
9
你需要在课堂上做到这一点。像这样:
class Whatever
attr_accessor :roles
def initialize
@roles = []
end
end
你真的不可能有一个<<roles
方法。您必须拥有支持<<
运营商的roles
访问者。
编辑:我更新了代码。现在你可以看到<<
运营商应该如何超载,但你也可以做roles<<
部分。下面是它的一小部分用法:
w = Whatever.new
w << "overload for object called"
# and overloads for the roles array
w.roles << "first role"
w.roles << "second role"
相关问题
- 1. 如何重载<<运算符?
- 2. 在C++中重载<<运算符?
- 3. 在C++中重载<<运算符
- 4. 运算符重载C++ - 重载输出“<<”运算符
- 5. 重载运算符<<在C++
- 6. 如何在C++中正确地重载“<<”运算符?
- 7. 运算符重载<
- 8. 错误重载运算符时<<
- 9. 重载运算符<<数组
- 10. 重载运算符<< ostream的
- 11. 重载运算符<< operator ==和operator!=
- 12. 重载运算符<< ostream语法
- 13. 运算符重载C++(<<)
- 14. >><<和运算符重载
- 15. C++朋友重载运算符<<
- 16. 重载C++插入运算符(<<)
- 17. 与CArchive的运算符重载<<
- 18. 重载运算符<<为集
- 19. 如何超载运算符<<
- 20. 重载运算符<< - 必须是二元运算符
- 21. C++重载运算符<<和运算符>>
- 22. 重载运算符<<和运算符!=
- 23. shovel(<<)运算符在Ruby Hashes中如何工作?
- 24. 超载<=>运算符ruby?
- 25. 问题重载<运算符在C++
- 26. 如何使用数组重载ostream <<运算符?
- 27. 如何重载运算符<< for qDebug
- 28. 如何正确重载ostream的<<运算符?
- 29. 如何重载cv :: Filestorage的<<运算符?
- 30. 如何重载ostream运算符<<对于pimpl类?
在您的解决方案中w.roles不会调用重写的<<方法。它只是调用@roles属性中的<未覆盖的属性。您可以通过在覆盖的<<方法中添加一个puts行来测试这个问题,您会看到'w <<“1”转储puts输出,但w.roles <<“2”不会转储那个puts输出。 – jaydel 2012-05-23 19:13:53
@jaydel,你是对的。我更新了代码。 – Geo 2012-05-23 19:34:48