Разница между bool и BOOL

почему в 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++.

 
« Предыдущая статья   Следующая статья »