@0nk0l0g

Как инициализировать статическое поле?

Добрый день.
Имеется класс agents, в нем есть статическое поле

static graph general_graph;

Где graph - другой класс. У этого класса есть метод fill() - считывает граф из файла.
Проблема: не могу инициализировать статическую переменную объектом граф с уже выполненным методом fill(), не создавая глобальный объект.

вне функции main пишу такой код:

graph agents::general_graph = *(new graph());

код компилируется без ошибок, но как при этом вызвать метод fill() при инициализации?
  • Вопрос задан
  • 173 просмотра
Решения вопроса 2
Olej
@Olej
инженер, программист, преподаватель
У этого класса есть метод fill() - считывает граф из файла.

У вас ведь метод вызывается как-то так: ?.fill(<имя_фала>)?
Хороший вариант - иметь перегруженный конструктор вида graph(<имя_фала>), в котором будет делаться то же, что и fill().
Ответ написан
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Если метод не виртуальный, то в конструкторе вызвать. Если нельзя в конструкторе, то в программе надо создать место, где вы будете инициировать подобные конструкции перед главным циклом (например в начале main).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы