C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Подробности - Union / MFC в подробностях / Visual C++

Подробности - Union

Создание объединения вызвана большими расходами памяти при возможности возврата функцией большого количества типов. Пришлось бы обьявлять перемнные для каждого возможного типа, часть из которых вообще могла не использоваться. Наиболее разумно было выделить общую память, в которой могли храниться переменные разных типов. Так и поступили.

union Имя объединения
{
	Тип 1;
	Тип 2;
	Тип 3;
	......
} Конкретное имя переменной;

Применение Union довольно специфично. Обычно оно связанно с типом данных OLE. Когда результат получения данных не ясен заранее. Подобная организация переменной реализована в типе COleVariant, который и является объединением.

#include "iostream.h"
#include "afxwin.h"

union MyUninon
{
	double unVal;
	int unInt;
	BOOL unBool;  
} MyUnionTypes;

void main()
{
	MyUnionTypes.unVal=0.3;
	cout << MyUnionTypes.unVal << endl;
	cout << "__________________" << endl;
	MyUnionTypes.unInt=1;
	cout << MyUnionTypes.unVal << endl;
	cout << MyUnionTypes.unInt << endl;
	cout << "__________________" << endl;
	MyUnionTypes.unBool=false;
	cout << MyUnionTypes.unVal << endl;
	cout << MyUnionTypes.unInt << endl;
	cout << MyUnionTypes.unBool << endl;
}

Создайте этот пример, как Win32 Console, скомпилируйте и запустите.

В последнем присвоении вы увидите как установка unBool повлияла на unInt.


| |
Автор Каев Артем.
[AD]