21xrx.com
2024-11-22 10:02:10 Friday
登录
文章检索 我的文章 写文章
C++类重载“<<”运算符成员函数
2023-07-04 21:18:04 深夜i     --     --
C++ 重载 <<运算符 成员函数

在C++中,我们可以重载许多运算符,其中包括“<<”运算符。将“<<”运算符重载为类的成员函数可以使我们更方便地打印该类对象的信息。

在重载“<<”运算符时,我们需要将其声明为该类的友元函数或成员函数。如果我们选择将它作为成员函数,我们需要使用一个特殊的格式来定义它。这个特殊的格式是将运算符重载函数定义为类的成员函数,并使用一个类型为std :: ostream的参数来接收ostream对象,如下所示:

class MyClass{

public:

  friend std::ostream& operator<<(std::ostream&, const MyClass&);

};

std::ostream& MyClass::operator<<(std::ostream& os, const MyClass& myClass)

  os << "MyClass Object" << std::endl;

  //输出myClass对象的其他属性

  return os;

在这个例子中,我们将MyClass的“<<”运算符重载为类的成员函数。我们使用了一个名为“os”的类型为std :: ostream的参数来接收ostream对象,并使用引用来传递这个参数。成员函数的定义必须与其声明匹配,所以在类定义中我们需要使用“friend”来识别该函数是类的成员函数,而不是友元函数。

在函数体中,我们可以像通常一样使用输出运算符(<<)输出对象的信息。因为我们使用了引用来传递ostream对象,并且返回一个引用,所以我们可以使用串联的输出运算符(<<)在一个语句中输出多个对象的信息。

使用这个重载版本的“<<”运算符非常简单。只要我们将需要打印的类对象作为运算符左操作数,并将std::cout作为运算符右操作数,这个运算符就会自动调用我们刚刚实现的成员函数。

例如:

MyClass myClass;

std::cout << myClass;

这将输出"MyClass Object"。

总的来说,重载类的“<<”运算符成员函数可以使我们更方便地打印类对象的信息。这种技术可以用于任何需要打印对象的情况,并且可以使输出更清晰、更紧凑。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复