Как написать функцию, чтобы она возвращала все пять типов данных?

  • 26 августа 2023 г. 13:16
Ответы на вопрос 2
Для решения этой проблемы можно воспользоваться шаблонами в C++. Вот пример функции, которая будет возвращать разные типы данных, используя std::variant:

```cpp
#include <variant>

std::variant<int, float, bool, std::string, sf::Drawable> GetFiveTypes()
{
    // Возвращаем разные типы данных в зависимости от некоторой логики 
    // (просто для демонстрации, вы можете изменить логику в соответствии с вашими потребностями)
    int intValue = 42;
    float floatValue = 3.14f;
    bool boolValue = true;
    std::string stringValue = "Hello, world!";
    sf::Drawable drawableValue;

    int random = std::rand() % 5;
    switch (random)
    {
        case 0:
            return intValue;
        case 1:
            return floatValue;
        case 2:
            return boolValue;
        case 3:
            return stringValue;
        case 4:
            return drawableValue;
    }

    // Если случайное число не попало в range [0, 4], возвращаем значение по умолчанию (в данном случае будет возвращен intValue)
    return intValue;
}
```

В данном примере функция GetFiveTypes() возвращает один из пяти типов данных (int, float, bool, std::string, sf::Drawable) в зависимости от случайно выбранного числа. Это достигается с помощью std::variant, который может содержать любой из указанных типов данных.
Нужно использовать указатель, который ссылается на базовый класс. Также, из пяти экземпляров класса один следует создать с использованием оператора new.
Похожие вопросы