隐式转换和多态性
implicit conversions and polymorphism
非常简单的问题,我正在尝试使用多态参数进行隐式转换,有什么方法可以让它工作吗?
主.cpp
nickname nick("somenick");
client.send(nick_request(nick)); // original
client.send(nick); // Implicit conversion from nickname to nick_request
客户端.hpp
virtual void send(const request & rq)
nick_request.hpp
class nick_request : public request
{
nick_request(const nickname & nick);
...
};
昵称.hpp
nickname(const std::string & name)
一种解决方案是为每种类型的"请求"写出重载,但这很乏味,并且违背了多态性的重点。
您可以在nickname
中编写一个转换函数(从nickname
到nick_request
)。
class nickname {
public:
nickname(const std::string & name) {}
operator nick_request() const { return nick_request(*this); }
};
住
查看用户定义的转换
相关文章:
- 多态性和功能结合
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- C++boost序列化多态性问题
- 如何查找哪个类对象位于数组的特定索引上(多态性)
- 如何在多线程中正确使用unique_ptr进行多态性?
- 如何使用静态多态性在 int 和指针类型之间进行转换?
- 使用多态性时在子对象之间进行转换?
- 如何避免使用模板类型的派生类进行多态性动态强制转换
- C 模板和多态性无缝合用户定义的转换
- c++多态性:基类的上转换/下转换和容器,缺少数据
- 多态性和类型转换
- 无法从指针派生类转换为指针基类(多态性)
- 隐式转换和多态性
- 如何使用基类指针调用派生类非虚拟成员函数,而无需类型转换和使用多态性
- c++多态性,不完全向下转换
- c++多态性和类型转换
- C++ 多态性和派生类类型 - "ugly programming"指针类型转换
- 根据"foreign"子类型采取特定操作,不带开关、强制转换等。我们可以以某种方式使用多态性吗?
- 从shared_ptr到weak_ptr多态性的转换