Подробности - Разница между 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++.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 17.03.2000