Реферат: Объективное программирование
----------------------------------
При определении формальных параметров функции может быть
указано его значение, принимаемое при вызове по умолчанию при
отсутствии этого параметра в списке фактических:
//----- Функция устанавливает по умолчанию текущее значение года,
//----- месяца и дня
#include <dos.h>
void dat::SetDat(int d=0, int m=0, int y=0)
{
struct date x;
getdate(&x); // Стандартная функция получения
// текущей даты
// Проверка на значение по умолчанию
year = (y == 0) ? x.da_year : y;
month= (m == 0) ? x.da_month: m;
day = (d == 0) ? x.da_day : d;
}
2.7 Контроль преобразования типов ссылок
---------------------------------------
В "классическом" Си при выполнении присваивания, передаче фактических параметров происходит автоматическое преобразование ссылок к базовым типам данных (int,unsigned) и наоборот, а также преобразование одного типа ссылки к другому. В Си++ такие "вольности" исключены, программист должен сам выполнить явное преобразование. Например, при использовании функции распределения динамической памяти, имеющей прототип в "alloc.h"
extern void* malloc(int n);
dat *p;
p = (dat *) malloc (10*sizeof(dat));
¦
L--- преобразование void* в dat*
Естественно, что это преобразование типов фиктивное в том смысле, что не меняет значения ссылки и не приводит к генерации кода. Оно только меняет "точку зрения" транслятора на данную ссылку.
2.8 Вставляемые (inline) функции
-------------------------------
Если функция (обычная или элемент-функция структуры или класса) объявлены inline-функциями, то при вызове таких функций транслятор выполняет подстановку по тексту программы тела функции с соответствующей заменой формальных параметров на фактические. Элемент-функция также считается inline по умолчанию, если ее тело определено непосредственно в определении структуры (или класса),например: