namespace Instruction {
class Device_Impedance {
 public:
  friend std::ostream& operator<<(std::ostream& out,
                                  const Instruction::Device_Impedance& di);
 private:
  unsigned int m_minimum_ohms;
  unsigned int m_maximum_ohms;
};
}  // namespace Instruction
  
   上述最小化类声明朋友
   
    operator<<
   
   在命名空间中
   
    Instruction
   
   .
  
  using namespace Instruction;
std::ostream& operator<<(std::ostream& out,
                         const Instruction::Device_Impedance& di) {
  out << di.get_name() << "    " << di.m_minimum_ohms << ", "
      << di.m_maximum_ohms << "\n";
  return out;
}
  
   上述代码定义了
   
    操作员<&书信电报;
   
   在全局命名空间中,它
   
    没有
   
   定义朋友
   
    操作员<&书信电报;
   
   在命名空间中
   
    说明书
   
   .
  
  
   定义必须在命名空间中
  
  namespace Instruction {
std::ostream& operator<<(std::ostream& out,
                         const Instruction::Device_Impedance& di) {
  out << di.get_name() << "    " << di.m_minimum_ohms << ", "
      << di.m_maximum_ohms << "\n";
  return out;
}
}  // namespace Instruction
  
   或者在课堂上
  
  namespace Instruction {
class Device_Impedance {
 public:
  friend std::ostream& operator<<(std::ostream& out,
                                  const Instruction::Device_Impedance& di) {
    out << di.get_name() << "    " << di.m_minimum_ohms << ", "
        << di.m_maximum_ohms << "\n";
    return out;
  }
 private:
  unsigned int m_minimum_ohms;
  unsigned int m_maximum_ohms;
};
}  // namespace Instruction