Функции-элементы находятся в области действия класса, в котором они определены. Т.о. они могут обращаться к любому элементу класса, используя просто имя переменной. Обычные функции или функции-элементы другого класса могут получить доступ к элементам-данным с помощью операции . или ->, применяемых к представителю или указателю на представитель класса.
Пример.
class coord
{
public: int x, y; // координаты x и y
};
void main()
{
coord org; // представитель класса координат
coord *orgptr = &org; // указатель на представитель класса
org.x = 0; // задание значения координаты x
orgptr->y = 0; // задание значения координаты y
}
15. Перегрузка функций
Один из способов, которым достигается реализация полиморфизма в языке С++, заключается в использовании перегрузки функции. В С++ две или более функции могут иметь одно и то же имя, если они отличаются набором параметров в интерфейсе. В таком случае о функциях говорят, что они перегружены.
Пример
#include <iostream>
using namespace std;
// sqr_it перегружается три раза
int sqr_it(int i);
double sqr_it(double d);
long sqr_it(long l);
int main( )
{
cout << sqr_it(10) << “\n”;
cout << sqr_it(11.0) << “\n”;
cout << sqr_it(9L) << “\n”;
return 0;
}
int sqr_it(int i)
{
cout << “Inside the sqr_it( ) function that uses “;
cout << “an integer argument.\n”;
return i*i;
}
double sqr_it(double d)
{
cout << “Inside the sqr_it( ) function that uses “;
cout << “an double argument.\n”;
return d*d;
}
long sqr_it(long l)
{
cout << “Inside the sqr_it( ) function that uses “;
cout << “an long argument.\n”;
return l*l;
}
В этой программе создаются три сходные, но различные функции с именами sqr_it(), каждая из которых возвращает квадрат своего аргумента. Компилятор знает, какую функцию использовать, благодаря типу аргумента. Значение перегруженных функций заключается в том, что они позволяют обеспечивать доступ к целому набору функций, используя общее имя. Перегрузка функций важна потому, что она помогает в решении проблемы сложности. Хотя можно использовать одно и то же имя для перегрузки функций выполняющих совершенно разные задачи, делать этого не следует.