Перегрузка переопределение функц



Конструктор копирования

Общий вид конструктора копирования имеет следующий вид:

имя_класса (const имя_класса &);

Конструктор выполняет все необходимые действия при вызове функции и копировании содержимого объекта в стек (из стека). Вызов конструктора копирования осуществляется при обращении к функции и передаче в нее в качестве параметра объекта (объектов), а также возврата значения (объекта) из функции.

Если для класса конструктор копирования явно не описан, то компилятор сгенерирует его. При этом значения одной компоненты-данного будут скопированы в компоненту-данное другого объекта. Это допустимо для объектов простых классов и недопустимо для объектов, имеющих динамические компоненты-данные (конструируются с использованием операторов динамического

выделения памяти).


 

Перегрузка переопределение функц

Одним из подходов реализации принципа полиморфизма в языке С++ является использование перегрузки функций. В С++ две и более функций могут иметь одно и то же имя. Компилятор С++ оперирует не исходными именами функций, а их внутренним представлением, которое учитывает количество и тип принимаемых аргументов. В то же время тип возвращаемого функцией значения не учитывается. Поэтому для компилятора функции с различным списком аргументов – это разные функции, а с одинаковым списком аргументов, но с разными типами возвращаемого значения – одинаковые. Для корректной работы программ последнего следует избегать. Функции, имеющие одинаковые имена, но разные списки аргументов, называются перегруженными.

class cls {int n;double f;

public: cls(int N,float F): n(N),f(F) {}

int sum(int k){ n+=k; return n;}

double sum(double k){ f+=k; return f;}

void see(){cout <<n<<' '<<f<<endl;}};

void main(){ cls obj(1,2.3); obj.see();cout <<obj.sum(1)<<endl; cout <<obj.sum(1.)<<endl; }

 

 



Дата добавления: 2015-12-21; просмотров: 78; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!