我想将一个类从外部库公开给我的库的用户。具体来说,我想将类“导入”到我的命名空间,以便用户不需要知道我在幕后使用的库。通常我似乎可以使用typedef
或简单地using
来完成此操作。是否有任何理由选择一种方法而不是另一种方法(或做其他事情)? (我的教育似乎有些差距:))
例如:我想创建一个使用Boost :: Asio的串口管理器。
namespace MySerialManager {
//should I use a typedef
typedef boost::asio::serial_port_base::flow_control flow_control ;
//or a using...
using boost::asio::serial_port_base::flow_control;
class SerialManager
{
//let the user specifify the flow on construction
SerialManager(const flow_control& fc);
}
}
或者我应该完全做其他事情......非常感谢。
答案 0 :(得分:2)
两者都有相同的最终结果。使用可能更接近你的意图。
答案 1 :(得分:1)
如果您想“导入”一个类模板,那么using
将是您唯一的选择。就目前而言,我认为没有任何实质性的区别。就个人而言,在上述情况下我会选择typedef,因为它是一个较旧且更熟悉的结构。