Здравствуйте, ответьте пожалуйста если сможете на такой вопрос: почему в 26 шаге если в классе CMyDoc при объявлении функции OnNewDocument написать: virtual bool OnNewDocument(); вместо virtual BOOL OnNewDocument();, то он выдается ошибка: C:\C++ projects\App\App.cpp(14) : error C2555: 'CMyDoc::OnNewDocument' : overriding virtual function differs from 'CDocument::OnNewDocument' only by return type or calling convention PS Ответ пришлите пожалуйсто по адресу: sapentium@???.ru или c_shura@???.md
Ответ простой - это просто два разных типа переменных если я не ошибаюсь. Запустите следующий пример.
// BoolTest.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" #include "iostream.h" void main() { cout << sizeof(bool) << endl; cout << sizeof(BOOL) << endl; }
На экране появится примерно такой ответ:
1 4 Press any key to continue
Как видите, размер для хранения данных разный. Ну и правильно. Объявления то их разные.
typedef int BOOL;
То есть BOOL в Windows это просто переопределенный int по принципу то 0 и все остальное. bool же это тип данных C++.