Зачем в конструкторе класса используется пустой std::string?

  • 29 августа 2023 г. 11:06
Ответы на вопрос 1
В конструкторе класса может использоваться пустая std::string для того, чтобы предоставить возможность создать экземпляр класса без передачи аргументов. Это делается для упрощения использования класса - пользователь может создать объект и затем заполнить его значениями по умолчанию или использовать методы класса для их задания.

Однако, если есть константа Info::PATH, которая содержит нужный текст, можно использовать ее значение в конструкторе класса Text_File вместо пустой строки. Для этого нужно добавить параметр в конструктор и инициализировать поле класса с использованием значения из константы.

Вот пример исправления проблемы:

```cpp
class Text_File {
public:
    Text_File(const std::string& filepath) : path(filepath) {}

    void set_path(const std::string& filepath) {
        path = filepath;
    }

    std::string get_path() const {
        return path;
    }

private:
    std::string path;
};

// Пример использования
const std::string Info::PATH = "путь к файлу";
Text_File file(Info::PATH);
std::cout << file.get_path() << std::endl;

// Вывод:
// путь к файлу
```

В этом примере добавлен конструктор с параметром filepath, который инициализирует поле path переданным значением.
Похожие вопросы