русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Преобразование объектных типов


Дата добавления: 2013-12-23; просмотров: 929; Нарушение авторских прав


Объектные типы

Термины

Указания компилятору

#pragma <последовательность_символов>

Определяет зависящие от реализации указания компилятору (прагмы). Компилятор Visual C++ поддерживает следующие прагмы: alloc text, comment, optimize, auto_inline, component, inline_depth, pack, bss seg, data_seg, function, intrinsic, setlocale, code_seg, hdrstop, message, const seg, once, warning, inline recursion, check_stack, include_alias.

Например, директива

#pragma warning(disable: 4305)

предписывает компилятору не выдавать предупреждения с номером 4305, которое выдается при несовпадении типов данных.

#pragme inline

определяет, что в программе используются ассемблерные вставки.

 

 

Препроцессор языка Си представляет собой программу (подпрограмму), которая используется для обработки исходного файла на нулевой фазе компиляции.

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

Макрос – это средство замены одной последовательности символов другой.

 

Тип данных всегда определяет размер памяти, которая будет выделена под переменную данного типа при ее создании.

При объявлении переменной объектного типа (типа класса) создаются переменные члены класса и вызывается конструктор класса. Производные типы на основе классов позволяют получать доступ к членам класса.

Переменная, объявленная как указатель на класс, применяется для доступа к методам и переменным членам класса. В следующей таблице приведен синтаксис, используемый при работе с указателями на члены класса.

Например:



#include <iostream.h>

class A // Объявление класса A

{ public: int j1;

A(void);

~A(void);};

void main() {

int A::*pToj = &A::j1;

// Объявление производного типа pToj

// как указателя на член класса j1

A jA;

// Объявление переменной объектного типа А A *pjА = & jA;

// Объявление указателя на эту

// переменную (объект)

int j ;

jА.*pToj = 123;

// Присваивание значения переменной

// jA::jl, используя *

j = pjA ->*pToj;

// Получение значения, используя ->*

Std: : cout << j << "\n" ;

}

Указатель на класс может быть преобразован к указателю на базовый класс в двух случаях:

• если базовый класс является доступным и преобразование однозначно;

• если указано явное преобразование типа указателя.

Например:



class А //А - базовый класс

{public:

int а1;

int Fa();

};

class В : public А //В - производный класс

{public:

int b1;

int Fb() ;

};

В bObj; // Объект типа В

A *pA = &bObj;

//Преобразование типа ограничивает

// доступ к членам класса В и

// разрешает доступ только к членам

// базового класса

В *рВ = &bObj;

// Нет преобразования типа и

// следовательно разрешен доступ как

// к членам класса В,

// так и к членам класса А.

рА-> Fa () ;

// Правильно: вызов функции члена класса А. рВ-> Fa () ;

// Правильно: вызов функции,

//наследуемой от класса А

// Вызов рА-> Fb (); ошибочен: функция Fb

// недоступна через указатель на базовый

// класс А

Указатели на члены класса или структуры не могут рассматриваться как обычные указатели и для них не выполняется стандартное преобразование типа.

Квалификация имен

Квалификация имен используется для однозначного понимания указываемого имени. Для квалификации имени могут использоваться следующие операторы: :: (оператор принадлежности); . (оператор доступа к члену класса посредством имени); -> (оператор доступа к члену класса через указатель).



<== предыдущая лекция | следующая лекция ==>
Заранее определенные препроцессорные идентификаторы | Виртуальные методы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.