Невозможно пройти вход в систему при тестировании моего приложения Angular с помощью MSAL.js и crossbrowsertesting.com.

Я думаю, что основной причиной инициализации вне блока class является возможность инициализации с возвращаемыми значениями других функций-членов класса. Если вы хотите выполнить инициализацию a::var с помощью b::some_static_fn(), вам нужно убедиться, что каждый файл .cpp, который включает a.h, включает b.h в первую очередь. Это будет беспорядок, особенно когда (рано или поздно) вы столкнетесь с круговой ссылкой, которую вы могли бы разрешить только с ненужным interface. Эта же проблема является основной причиной для реализации функций-членов класса в файле .cpp вместо того, чтобы помещать все в ваш основной класс .h.

По крайней мере, с функциями-членами у вас есть возможность реализовать их в заголовке. С переменными вы должны выполнить инициализацию в файле .cpp. Я не совсем согласен с этим ограничением, и я не думаю, что для этого есть веская причина.

0
задан Craig 18 March 2019 в 17:57
поделиться