Язык С
Язык С++
int abs(int x)
double fabs(double x)
int abs(int x)
double abs(double x)
char abs(char x)
{
return(x < 0 ? -x : x);
}
short abs(short x)
{
return(x < 0 ? -x : x);
}
long abs(long x)
{
return(x < 0 ? -x : x);
}
float abs(float x)
{
return(x < 0 ? -x : x);
}
Язык С++ разрешает определение нескольких функций с одним и тем же именем, если функции отличаются числом или типом параметров.
Circle c(100);
c.Draw(120, 50); // правильно
c.Draw(); // ошибка
c.Figure::Draw(); // правильно
7
Шевченко А. В.
Перегрузка операторов в С++
2 + 2 = 4
int a = 2;
int b = 2;
int c = a+b;
Перегрузка операторов
Вне области класса
В рамках определения класса
Программирование и основы алгоритмизации
Тема 6. Объектно-ориентированное программирование. Перегрузка и шаблоны
9
Шевченко А. В.
Пример перегрузки оператора «+» в области класса
10
Шевченко А. В.
Пример перегрузки оператора «+» вне области класса
Программирование и основы алгоритмизации
Тема 6. Объектно-ориентированное программирование. Перегрузка и шаблоны
11
Шевченко А. В.
Пример перегрузки оператора присваивания
e = a+b+c+d;
e.operator=(a.operator+(b).operator+(c).operator+(d));
e = (a+b)+(c+d);
e.operator=(a.operator+(b).operator+(c.operator+(d)));
e = a+(b+c)+d;
e.operator=(a.operator+(b.operator+(c)).operator+(d));
Circle &operator++(int)
{
static Circle tmp(0);
tmp.r = r;
r *= 2;
return(tmp);
}
Circle a(10);
Circle b = a++;
Circle c = ++a;
template
T min(T x, T y)
{
return(x < y ? x : y);
}
long double min(long double x, long double y); // инсталляция
char* min(char* x, char* y)
{
return(strcmp(x, y) < 0 ? x : y);
}
template
void Stack
{
data[count++] = Value;
}
template
T Stack
{
return(data[--count]);
}
Полное замещение
Частичное замещение
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть