21xrx.com
2024-11-22 04:01:10 Friday
登录
文章检索 我的文章 写文章
C++输出运算符重载实现
2023-07-01 09:50:19 深夜i     --     --
C++ 输出运算符 重载 实现

C++中的输出运算符重载是一种非常常见的重载方式,它能够方便地输出用户定义的类型数据。它的语法形式为:


ostream& operator<<(ostream& os, const 自定义类型& obj)

  // 输出obj对象数据的实现

  return os;

其中,`ostream&`指输出流,`os`指输出流对象,`const 自定义类型& obj`表示需要输出的对象。在重载实现中,开发者需要实现对自定义类型`obj`的输出操作。通常,可以使用`os`对象的插入运算符`<<`来实现输出。不同的数据类型输出方式也不同,例如:


ostream& operator<<(ostream& os, const Person& p)

  os << "Name: " << p.name << endl;

  os << "Age: " << p.age << endl;

  os << "Gender: " << p.gender << endl;

  return os;

ostream& operator<<(ostream& os, const Book& b)

  os << "Title: " << b.title << endl;

  os << "Author: " << b.author << endl;

  os << "Publication Date: " << b.pubDate << endl;

  return os;

ostream& operator<<(ostream& os, const Student& s)

  os << "Name: " << s.name << endl;

  os << "Age: " << s.age << endl;

  os << "Gender: " << s.gender << endl;

  os << "ID: " << s.id << endl;

  os << "Major: " << s.major << endl;

  return os;

在实际使用中,开发者只需要在需要输出自定义类型对象时,调用相应数据类型的输出运算符即可:


Person p("Tom", 20, "Male");

cout << p << endl;

Book b("C++ Primer", "Stanley B. Lippman", "2012-08-25");

cout << b << endl;

Student s("Lucy", 19, "Female", "2019123456", "Computer Science");

cout << s << endl;

通过上述实现,开发者可以非常方便地输出自定义数据类型的数据。需要注意的是,在重载实现中,输出流对象需要返回引用形式`ostream&`,以便实现级联操作。

  
  

评论区

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