Ответ на этот вопрос немного сложнее, чем да или нет.Во многом это зависит от того, насколько строго вы даете определение «программе на C ++».Программа подсистемы Windows, созданная с помощью MSVC, обычно не имеет функции main
.MFC - это языковая структура C ++ для создания программ подсистемы Windows (по крайней мере, в современной практике).Для целей «Является ли программа написанной без основной функции с использованием компилятора C ++ программой C ++, и если нет, то что это?»MFC не имеет значения.
О функции main
можно говорить в терминах «автономных» и «размещенных» реализаций.Стандарт требует, чтобы только «размещенные» реализации имели основную точку входа.Тем не менее, вам будет трудно назвать реализацию Microsoft CRT и языка "автономным" с открытым лицом.
Таким образом, мы могли бы сделать вопрос более конкретным: "Является ли приложение MFC соответствующей, размещенной на C ++ программой?"и ответом на этот вопрос будет «Технически, очень технически, нет», то есть имеют преимущество стандартной библиотеки et.и др.Примеры автономных сценариев могут быть во встроенной системе или ядре операционной системы.Например, при написании ядра ОС вы не можете полагаться на наличие таких функций, как malloc или new, поскольку вы реализуете службы (виртуальную память, процессы и т. Д.), Которые в конечном итоге будут использоваться для реализации таких вещей, как malloc и new.1011 *