小编nig*_*arc的帖子

C++使用typedef'd std :: vector重载<<运算符

让我受到欢迎,我遇到了一些问题.我有一个std::vector包含一些自己的类的typedef'ed :

typedef std::vector<data::WayPoint> TWayPointList;
Run Code Online (Sandbox Code Playgroud)

这是结构内部的嵌套类型,DataHandler它在某些命名空间中存在data.

所以,现在我想打印出矢量的单个内容.为此,我的想法是重载<<运算符并循环遍历typedef'ed向量的单个元素.所以我在结构中声明了以下输出操作符DataHandler:

namespace data
{
    structure DataHandler
    {

        // ... some code
        typedef std::vector<data::WayPoint> TWayPointList;

        // ... some more code

        /**
         * @brief Globally overloaded output operator
         *
         * @param[in] arOutputStream Reference to output stream.
         * @param[in] arWayPointList WayPoint which should be printed to output stream.
         */
         LIB_EXPORTS friend std::ostream& operator<<(std::ostream& arOutputStream, const data::DataHandler::TWayPointList& arWayPointList);
    } // structure DataHandler
} // namespace data
Run Code Online (Sandbox Code Playgroud)

并在相应的源文件中定义它:

namespace data
{ …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

6
推荐指数
1
解决办法
1629
查看次数

标签 统计

c++ ×1

operator-overloading ×1