代码之家  ›  专栏  ›  技术社区  ›  MaxAttax

命名空间中具有.h和.cpp文件的类[重复]

  •  0
  • MaxAttax  · 技术社区  · 5 年前

    所以我正在制作我自己的Vector STL类的副本。我知道这是不实际的,这只是我在做的。我在用visualstudio。这是我的密码。。。

    namespace  CS52 {
        class  Vector {
        public:
            friend std::ostream& operator<<(std::ostream&, Vector &);
        };
    }
    

    我的向量.cpp

    #include "myVector.h"
    #include <fstream>
    
    std::ostream& CS52::Vector::operator<<(std::ostream&, CS52::Vector &)
    {
        // TODO: insert return statement here
    }
    

    我得到的错误是类“CS52::Vector”没有成员“operator<<” 谢谢

    1 回复  |  直到 5 年前
        1
  •  0
  •   Matthieu Brucher    5 年前

    您只声明此运算符是类的朋友。

    namespace  CS52 {
        class  Vector {
        public:
            friend std::ostream& operator<<(std::ostream&, Vector &);
        };
        std::ostream& operator<<(std::ostream& stream, Vector &v);
    }
    

    然后:

    namespace  CS52 {
        std::ostream& operator<<(std::ostream& stream, Vector &v)
        {
           return stream;
        }
    }