420_____________________Часть III. Современное программирование на C++

Все эти примеры практически иллюстрируются в листинге 17.4. При вызове каждой их этих функций программа печатает соответствующее сообщение.

h04201.jpg

1

// COPIES.CPP — Демонстрация форм операторов, использующих

2

// конструктор копий и операцию присваивания.

3

#include <iostream.h>

4

#include <fstream.h>

5

ofstream of( "output.dat");

6

class X

7

(

8

public:

9

X () ;

10

~X () ;

11

X(const X&) ;

12

X& operator=(const X&);

13

operator int(){return num; }

14

private:

15

int num;

16

};

17

//Конструктор по умолчанию

18

Х::Х()

19

{

20

of «"конструктор" « endl;

21

num = 5;

22

»

23

// Деструктор

24

X::~Х()

25

{

26

of « "деструктор" « e,ndl;

27

}

28

// Конструктор копий

29

:Х: :Х( const. X& rhs)

30

{

31

of « "конструктор копий" « endl;

32

num = rhs.num;

33

}

34

// Операция присваивания

35

X& X::operator=(const X& rhs)

36

(

37

if( this == &rhs) return *this;

38

of « "операция присваивания" « endl;

39

num = rhs.num;

40

return *this;

41

i

42

// Возврат по значению

43

X Foo()