包括来自另一个文件的运算符重载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包括来自另一个文件的运算符重载相关的知识,希望对你有一定的参考价值。
我想使用另一个文件中定义的运算符,如果可能的话,还要使用另一个命名空间,这就是我所拥有的。
(operators.hpp)
#ifndef __OPERATORS__HPP__
#define __OPERATORS__HPP__
#include "proto_handler.hpp"
#include <iostream>
namespace apius {
namespace support {
namespace operators{
std::istream& operator>>(std::istream& in,
inventory::proto::item& item);
}
}
}
(operatos.cpp)
#include "operators.hpp"
namespace apius {
namespace support {
namespace operators{
std::istream& operator>>(std::istream& in,
inventory::proto::item& item){
//code here
}
}
}
}
(another_file.cpp)
#include "operators.hpp"
extern std::istream& operator>>(std::istream& in,
inventory::proto::item& item);
void test(){
inventory::proto::item new_item;
std::cin>>new_item;
}
并且我在包含std :: cin的行中获得了对运算符的未定义引用>
我该怎么做才能使这项工作?
我想使用在另一个文件中定义的运算符,如果可能,还可以使用另一个命名空间,这就是我所拥有的。 (operators.hpp)#ifndef __OPERATORS__HPP__ #define __OPERATORS__HPP__ #include“ ...
答案
基本上,链接器正在努力找到这样的符号,因为没有人。由于C ++名称的混乱,您将在对象文件的符号表中获得类似__ ZN5apius7support9operatorsrsERNSt3__113basic_istream ...
以上是关于包括来自另一个文件的运算符重载的主要内容,如果未能解决你的问题,请参考以下文章