Значение вызова по умолчанию в C ++ Struct - PullRequest
0 голосов
/ 13 февраля 2020

Новый для C ++ здесь. Допустим, у меня есть структура, определенная как:

struct Item {
  string name;
}

В C ++ есть ли способ получить значение name, просто вызвав объект?

Item item;
item.name = "Andy"
cout << item; // --> Output: "Andy"

Спасибо!

1 Ответ

2 голосов
/ 13 февраля 2020

Вам необходимо перегрузить оператор вставки потока operator<< для Item типа.

#include <iostream>
#include <string>

struct Item {
  std::string name;
  friend std::ostream& operator<<(std::ostream& stream, const Item& obj);
};
  std::ostream& operator<<(std::ostream& stream, const Item& obj) {
    // Feel free to extend this function to print what you like.
    // You can even do something like 'stream << "Item(" << obj.name << ")";'.
    // The implementation is upto you as long as you return the stream object.
    stream << obj.name;
    return stream;
  }

int main() {
  Item it{"Item1"};
  std::cout << it << std::endl;
}

Попробуйте сами

Больше ссылок на топи c:

ссылка 1

ссылка 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...