C++ : Programming Made Simple by Conor Sexton (2nd Edition)

349

Transcript of C++ : Programming Made Simple by Conor Sexton (2nd Edition)

Page 1: C++ : Programming Made Simple by Conor Sexton (2nd Edition)
Page 2: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������������

��������

pRan!
Approved
I share this book for educational purpose only. If you really like this book please buy it and help the authors, they deserve it. All The Best. :) Book link: www.slideshare.net/pran93 Facebook: www.facebook.com/pran93
Page 3: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������������

��������

��������������

������������

������������������ �������������������������������

�������������������������������������������������

Page 4: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������

� ���� ������������������ ��

�� ����������������� ������������������� !

��"�#���$������� ����#�%�� ����&'�&'(�&)'

*������%���+����&&,

-�.�/��0+���.� �������� ��&&,1�������0+�����������

2+����0+�����.� �������� ����%����� �����������+�����+�������+���$��3

+���%�� ����������� �������� ���$��+��+��.�/��0+��� ���0 ��� �

!��� �������'4��

5����������+����%������� ��/�%������������� �� /�������������6� ����� 0

+�����/� 0��������� 0�� �� /������%/�������� ����� ��� ��$+��+��

��� ������ ��� ��/����� ���� ����/����������+�����������+����%������� 7�$��+���

�+��$����� �������� �����+����/��0+��+������������� �������� ���$��+��+�

������� ������+��.�/��0+��� ���0 ��� ��!��� �������'4������� �����+���������

������ ����������%/��+��.�/��0+������ �� 0��0� �/������4&�2���� +��.�����8����

�� �� ��� 0�� ��#'2�)�!1��������� �������+����/��0+��+�����9��$�����

������� �������������� /���������+����%������� ��+�����%�����������

����+���%���+���1

28� ���8:�;8�<=�2�8� � 28� ���8:�

.������+���$����� ������$����%�� �� ����� ��� ���� ��+���%��3����

���������%/��+���������������������3��� ��������3 �$���0��1

�������������� �����������������������������

��������0���������������+���%��3����������%��������+��>�����+���%���/

=�>5�&�?"&@�"?,��,

�2/�����%/������� ��!1:1���>����������+���

=�� ������0 ���%/�����+�#����-�'44)

!�� ����� ��%�� ��� �<�����>�����

Page 5: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��������

������� ����������������������������������������������������������������

� ��������������������� �

���� ������������������� �� � ����������������������� �

������������� ���� ������������������������������������������

������� ����������� �������� ��� ������������������������ !

"��� ��������� ���������������� �������������������� ##

��������$��%&%��� ������������������������������������������ �!

'�������%�������������� ��� ������������������������������� ()

������& ����������������������������������������������������������� ((

"*����%�% ������������������������������������������������������������ (+

� ���������������� !"

��%���������&��%�����,��������% ����������������������������� (

-�������������������% ������������������������������������������ +(

.�������������%�������%����% ���������������������������������� +/

�������%��������������% ��������������������������������������� +0

��������1%���� 2����%% ���������������������������������������� /(

�&������3��%��� �������������������������������������������������� /

"*����%�% ������������������������������������������������������������ /!

! ����#��������#����� "$

�� ���%������������������ ��� ������������������������ )

4�������% ����������������������������������������������������������� (

5������3����%��������������% �����������������������������

4�������������6&���������� ������������������������������������ !

����� �����%%�����%���� �������������������������������������� 7�

�3��������� ��������% ����������������������������������������� 70

4�������� ��������% ���������������������������������������������� !�

"*����%�% ������������������������������������������������������������ !+

Page 6: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

% ��������� �&��� '"

.������ �������������%�� �����&% ����������������������������� !

����� %8�%�6%�����%������������% ���������������������������� !!

����6���&�%���� ���������% �������������������������������������� 0�

���������% ����������������������������������������������������������� 0

�������%� ���%��������% ����������������������������������������� #)/

9����% ������������������������������������������������������������ #)7

"*����%�% ���������������������������������������������������������� ##)

" ����������������������� ���

��������3���������*���%%���% ����������������������������� ##�

-%%� ����� ������������������������������������������������������ ##(

�������� ����� ���������������������������������������������� ##/

����������������%%������3��& ������������������������������ ##7

��� �����*�����:�3�������� ������� ������������������� ##0

%�;������������ ������������������������������������������������� #��

"*����%�% ���������������������������������������������������������� #�+

( ������)����������� ��"

��� ����%�������� ��������������������������������������������� #�

������������6������� �������������������������������������� #�!

<���% �������������������������������������������������������������� #(#

9�������������6������%��������% ����������������������� #(+

=�������%�� %��������������������������������������������������� #(7

"*����%�% ���������������������������������������������������������� #+)

* ���&������� �%�

<������%��������% ����������������������������������������������� #+�

��� �������������������� �&��% ������������������������� #++

Page 7: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

.&������%���� ������������ ������������������������������� #+7

-����%%����������� �������������������������������������������� #/(

-���&%�����������% ��������������������������������������������� #/

�������%� �����������% ������������������������������������������ # )

"*����%�% ���������������������������������������������������������� # �

' ������ �(!

�������%%����%����� �������������������������������������������� # +

���%%����6��% ������������������������������������������������ #7)

���%%�%���� ����������������������������������������������������� #7!

���%%�%������������% ����������������������������������������� #!�

"*����%�% ���������������������������������������������������������� #!!

$ ��������+���� �'$

����������� ����������������������������������������������������� #0)

���%�������%�������%�������% ������������������������������ #0#

���%�������%� ����� ����������% ������������������������� #0

4���������3�������� �������%%�% �������������������������� �)�

����������3�������� ��������������������������������������� �)+

-%%� ���������� ��������%����������������������������������� �#)

"*�����:�����%���� ����%% ���������������������������������� �#�

"*����%�% ���������������������������������������������������������� �#

�, -��������� ��*

����������� ����������������������������������������������������� �#!

���%%� ����������� ���������������������������������������������� ��)

-���%%�������� �������������������������������������������������� ��!

���%�������%�������%�������% ������������������������������ �()

=�������� ����������� ������������������������������������������ �(0

>������� ��������% ������������������������������������������������ �+�

Page 8: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����

?�������&�@����3������� ��������% ��������������������������� �++

"*����%�% ���������������������������������������������������������� �+0

�� ��+����� )�������� �"�

=������������������������% ������������������������������� �/�

���%%� ��������% ������������������������������������������������ �/

"*��������������� ������������������������������������������� � /

5���������&����������������� �������������������������������� �7)

"*����%�% ���������������������������������������������������������� �7

�� .����������/�#��& �**

��������������������<�6���& ������������������������� �7!

��<����������% �������������������������������������������������� �!#

����%���� ����%% ������������������������������������������������� �!0

"*����%� ����������������������������������������������������������� �0+

�! ���������-01 �$"

����������� ����������������������������������������������������� �0

��������������6���&����%%�% ������������������������������ �00

4��������� $� �������������������������������������������������� ()#

����������������������� ������������������������������������ ()7

=�����������% ������������������������������������������������� (##

4����$� ����������������������������������������������������������� (#

"*����%�% ���������������������������������������������������������� (��

�% �����������#��&�)�������� !�!

-���� !!!

Page 9: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���)��

������������� �������������������������� ��� ��������������� ���������� �

����������������AA��������������������������������������AA������������������

������������������������ ������������������������ ���������� ��������������

�� ��������������������������! ������ � �����B

� ������� ���������" ������

� ����� ����������������������!��������������

� �������������������������AA�������������� ����

� ������������������������#� �������#�������������AA�

���������������������������������$� �������������������� ��������

����������������� ����������%����������������������#�����������������������

�������AA��������"������������&��������AA�����������������������#������ � ��

��������� ��������������������������������C� ����'����AA�� �������������������

��������� �����������������������������AA��������������������� ����B�����������

�������#��AA� ��� �������� ��� ������ �������� �������� ����� � ������������� �

������������������� ��������AA��(����������������D����#���� �#� ��������

��������D���������������������������AA��������������� ��������������������������

%������������������������������������������ ����������������� ��������"����)���#

�AA����� ����B������������������� �����������������AA��������#�����������

�������������������#�����������������������������AA����������"���������������

���������� ����������� ���������������������C�������'����������������������� ��

�AA�*���������������������� �� �����*�������� �����������������������%��� ����

�������������������E���� ��������������������������������������������������F�������!

�����������������

�������������������������������� �������AA����������������������������

��������G������� �������������#������ ������+����������C��������'����AA�,���

������!�!�������-��������������.���������������������������#������������������

���������/00� �������������������������� ��������� ����������������������

�AA#� ���������� ������������*����#������������ ��������� ������#100� ������ ��

�F������#�����#�������������C� �����������'��������������AA���������������#� �������#

�����"�� ����

�����������2���� ���#������� ����'�� ��������B������������ ����� ��� ���� ������

���������������������������������������� ���B

� �������!������������#�����������������������AA������������,��� ����-

� ���C�!�����'� �����������#�������AA������"��������������� ����

,��� ����3���$-

� ����������AA#���������������������������������,��� ���������0-

� +�����AA#�������������� ����������������������*�����,��� ����������2-

Page 10: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

%������� ������������� ����������������������� ������ �����������#��

�������������������#������������������������������������

���������F���������������� ���������������������B�������������������������

������ ���������E���������������������� ��������E�� ������������AA������"����

��������� ������������������������������ ���������������������������F��������

��E���� ����������������������������������

�����"��

4�����

Page 11: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� ���������������������

��������� ��� ������� ������ ���� �

�������������������� �������������������� �

������������������������� ���� �

������������������������ ��

�������� ��!"!��� ���������������������� ��

#���$��!������������������ ������������ %&

�����" ���������������������������������������� %%

�'����!�! ���������������������������������������� %(

Page 12: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

2������������-�1�����������

����AA� ���������������������������������������,��-���������������������

��������������������������������������AA���������#������������ �����������������

����������,� ����������#���������!��������������������-�������������������

�AA����������������������AA� ���#�������������������F���!�������

������������������������������� ������ ������������������ ��������

�����#������������ ���������,0!$105!/322!1-�����������������

��� ������ ,0!$105!/32/!$-� ���� ��������� ��� &�������!6��������� ��

���$�����������������#����#� ���������#������������� �����������������������

���������AA��������#�������������� ��������������������AA�����������������

��������"�������������������E������������������������� �����������������

������������������������ ��������������������AA��� ��������%��������#

�������� ��������������!������������������������������AA������������� !

���������7������������������������������������������������������������������

� ����������� ����AA�������������."�� ����������������������������������

������������������������������������������������#� !""�#����������� ������

���� ��� ���������� ���� ,���������-�������������#� ���� ����������� �� ���

����������� ����������AA��)������#�������������������#�������� ������

C�AA'�����������������������C�����AA'

����������������������������� ������������� ������������G�������������AA�� ��

������������ ����������������������� �����������������AA���������

���� ��������������G����

�AA������������������ ���� ������������������������������� ������

C������'� ������� ����� ������� �������#��� ������ ���������#�������������

����������������������������������������(�������"�#��AA�����������������

�������������������������� �������������� �����������������!������

������������ ������ ���������������������������������������������������������B

���� ���� �� � �������� ���� �������� �� ��� ������������ ������� �������� ���

,����!�����-�������������,�� ���������������-����������������������

������������������� ���AA� ��� 8����� 8���� ��� ����������� ��������� ���� 8����3

.��� ����.������,83..-������ ������������������������ ����������8�������

�����������������AA��������������������� �������������� ������ ���

�������� �����������������������������������E�����������������������

��������,�������������������������������-�������AA����� ������������������

������� ���������

%�������������������#���������������������� �������������������C��� �'#

83..�D������������������+���������������D�����+�����'���H�, ������

C�!��� '-������9��������������83..��"���������������8���E��H:�9������������

���AA�,�������C+��������AA'-#��H�����I������&������ ��� ���������������H:

�9�������������#������� �������F����+����,��+-#���������������������������

�� �����AA�����I������&��������������� ���������������

Page 13: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

%�������8����������������������� �������������AA������������� ��������

����"�#��AA����������������� ���������������#����������������������������

��+��F�������;��,�����;���������������-� �������AA���������������

������������� ���������������"�����������8�����*����������#���������8���

�������� ������������ ���������"�����������#��AA������������������������

�"�����������������������������������#��AA�����������������,�������� �����#

��������������8���-�������������������������������� �������������������������

����������#��������� ���������"������������ ���

�AA������������������� ������������������0�����% J �&����*�����������4

&F���������� ���������������30����������������#������������������������

��������������������������� ���������������������������������������+����#

������������������ ��������'���������������������������������� ����#

������������������������%�������9��������������������������,%9��-�������0

����������������������������������������</8�5��%�����������������#����

�����������������K���������������K�����,���-������������������#����!

(;!3�#����� �� ���� � ����� ��������������AA�������������������� ��

����������������������������������F����������0�����������������������

�" ���������������������%9��:�����AA������������������ ����������2��������

�����#��������������������������������������� �������������������D����

��������������������������AA���������*��������������������������� �� ����

*����� ,� *-� D� ���� ���� )����� 4���� ������������ �������� ,)4��-� ���� ��

�����������������������$�� �����������������������,��-������������������ ���!

��������������������������������������� �����!������������"��������

���#���������������������������������:�.���2��3!������ �������������

���%9��#�������������������������E������������������������������������������

��������������������������������,%9���������������������L������������-�

�����AA�,�����������C���������AA'-�����������������������������������������

�AA���������#���������������������������������������������������������� ����

����������������������������������������������� ������������������������

,������������� ��������#����$-����������!���������� �����#�������

��������������������������������������������������������������������������

�����������������"��� ����#��������������������������������� �����������

�����AA����������� ����������� ������������" ��������������������������#���

������������������������"��������,�������������������������������*����-�����

���������������������������

������������F������������������AA���������B

◆ �AA� �������� �����#����"����������" ��������������������������,����!

���������F���!�������������!�����-��� ��������������������������

���������

◆ �AA� �� ���������������#�������������������#������� ��� ���������������!

����#����������������������������������������������������� �����������

Page 14: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������ �������������������������������������������������F�����������������

������������AA�

◆ ��������� �� ������������ ������������� ��� ������������ ���� ��������� �����

������������������������������ ��������������� ���������������������

◆ �����������������AA������������������������������ �����E�������������

�������������������������������������������������������������������������

."�����#� � ������#� ���� ����� ����� �� ������ ������ ��� ������� ���� �������

�� ���������������������������������������������������������������������������

������ ���������

◆ �AA��������#����������� �������������������+�����������������������

����������������������������������������#������������ �������������������

� ���������������������������������������������� �������������CAA'

����C!M'��������������������������������������������

◆ �AA��������������������������������������� ��N�������������������N�����

���������������������#����������������#���������#����������� ��� �������

����������������������������������� ���������������������"����������

��������������������������������������������������G�������������������

���� �� ���� ������� ����� ����� ������ �������� �� �������� ������ �

���������������������������������������������������������������

◆ �AA������������������������#���������������B�������������������������

�������#������ ���� �������� ��� �������� ��� ��� ��������� ������ ������� ��

������!������ ����������!��� ��#������������!������������������

��������������������������������������������������!������������

◆ ����������������������������������������������������������������������

��������������������������������������� ��������������������������� ���

������ ��������������

◆ �����AA���������������������������AA�*����#�������������������������!

��� �� �����*�����,� *-�� �����������*�������� ����������� ���

�������,�����������������������������-��������:���������������������

��������������������������� ���� *� ������ �����!���������� �����!

���������������������������������D���������������#������#�G����#������

D��������������� ���������������������� ������������ ���#�����������

C��'� ��������������G������������������������� ������������

���0��������������0�������� �������������������������������#��������

���������������������� ������������'��������������������������������

�����������������,���#��� ���������������������O-�

AA���������������F���!������� ���������������������������������#�����!

���������������������������� ����������������������AA� ��������������������

���������������������������������������������F������%��� ������������AA���

����� ������������ ��������������������,;L��-#������������������������������

�F��������� �������������������������������������������L����������F���!

Page 15: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������� ���#��AA�������������F���������������������������#�����������

���������������#� ��������������������������������F�����,����������F���-#

���������������� �������������������������������������������F�������

���� �������� ���������� ����������� ���� ������ ������� �������������

���#����������������������������������������������������������"�����������

�AA����������F���!�����������������������#����������������#�������������

������� ����!���������������������������9�������83..#����������������

����������������F������� ���� � ��������������������� ��������������!

������������ ��"����

���'����������������������*��'�������������� ���O

Page 16: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

.�����3�������������

������������AA� �����������B

!��$%&'

����������� ������AA� �����.�����AA� ������������������������

���������� ���������������������� ���������������"�������������� !��

���������.�����AA� �����������������,����������-� !������������(���

�������"������#����� ���������������

%�����������!������AA�����������!������� �����������B

(��#")�*�+��,��*! -

���� !��$%&�*�)���./'

�������� ��������������������������������������0�1#���� ���1#��� �����

��������#��������� ����� ���� ����������������AA� ���E� C����0�'� ��� �����

������������,��*! ������������� ������������������������������������������

�� ������������"������������� �����������������������������������

�����"� �� �!���� �AA#� ��'��� ���� ����� ���� ����� �� ���� ������ ����� ���

��,��*! 12E�������������������������

��,��*! �������������������������������� ������������������������������#,�����

%����#���� �!�����AA#�����������������,����12E�����C2'���������������������

������������������AA����������������������������������������C#'�������������

�������������������'����*����������������,��*! ����������AA���������������

���������������,������� �����3������/-E�#,������������������������������*����

������������������������� ��� ���� �������� !�����������������'����������!������

� ����������������� ������������������,������������#�K�-������� �������������

��������������� ����������'�� ��������������� ��B����������������������� �

���� ���������(�������� ��������������"��������,�������������-#������*�)��

�����������������"������������������ ��������������

6��'���������!�����,�������������-�������������0�B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%&'

����������#��,��#��������������������� ���������� ���������������������#

�������� � ��������������F�����������������������������������������������"��

�������������!�����B��������������������������������!�� ����F����#�)���

����� ��� ��������� ������#� �� ���� ����� ����������� ������ �� ���� �������

����� ���#����������������������������������������� �����+��������

����E������,������������������-���'�������������������������������

����� ����

9�������������������*�)��������������������������AA���������G���������E���

������������������������#���������'�#������AA�������������������� ����������

����������������������������������������������� ��������������

Page 17: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

6��������������� ��"��������������!��������AA� ���#�����0�1#������

���������������AA��������� ��������� ��B

44�������0�1#���5����3�! �),��3�!�,� �"*��66

44���#"!,,������,�"!7����2��3

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,�����,�

&

����!�*8

�)9"�#8

������)��)�$%

&

�*�)��/

'

'/

���� !��$%

&

����,��,#�**�/

,#�**�1�)��)�$%/

'

��������#����� ���������������AA������#�����,�#�������������������������

���������#��)��)���������� !����������#����������������������������������B

����,��,#�**�/

���������������,�88�)��)�$%�,�������������������)��)���� ��������������,�-

������"���������� !�����������������,#�**�1�)��)�$%/���� ���������������

���� �������� �����������%�� ����� ��� ���������� !��#�����0�1#��� �� ��������

������������� ���

2������� ��� ����������

%�����������������������������������B�����������������������������������

�������������������������PME����������������������#����������������������#���

����������,-E�����������������������������QR������������#����������*�)��/�����

������������������������������AA� �����������!���D����������������

���������������#�F�������� ���������������"�������������� �����������������

������������������������������������������������������������������������

��������������

Page 18: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

2���������������������������

��� ��������� �����"� ���AA� ����� ����������� 1#�����7������� �� ����

�����������L9�<� �������������#������AA�������������������������������

������������������"��#�����������1##�1�#�1#::�����1#���� �������������"���������

���������"�1#���

�������0�1#��� ���#���������������������������#���������������������

����� �������������� ����������"��������������)��������#��'����������

������ ����&������AA�&������1������ ������������ ��������������� ������

�� ����� ����������� �� ����� ����� ��;L�� ���� �� ����!������ �F����� ��

�AAE���������������������������!������� ���#����������������������������

���������'����������7�����������&������AA�&������1��� �������������#���

������ ��������0�1#�������������������������B

9##;<�����0�1#��

���� ����������� �������������������0�1*:*#������������������������������

����#�������������� �����������������������������������

)�����+�������AA��� ����#������������C�!���'B

#"�����0�1#��

+���������#������������������������#����������#��������,�4.-� ��������

����+������I�������AA�5�0���9��������������

�����'����������L9�<�������#���������� ������������,L9�<!� ����������-

���� �����������������������������������!����������#��� ������������

L9�<��������� �� ���'�� � ������ ���� ������ ������!����� �� ��� �����L9�<

������#� �� �� ������ �� ���� ������������ ����� ,���� ����� L9�<� �������������

��������� �!��������!���������������������������������������-B

�������0�1� 44�=�����7,�* �>

366�����0�1#�� 44����):

#66�����0�1� 44��",�����):?�1#::�!���1#�,)���:*,�����

(����������������������������������������,��'�����������" ��������

���-#���������������"��������� ������������������������!1�)��,����������������#

��������������-�

���� ������������������,�� ���������������-�������������������������������

������7����� ����������;L����� ����#������������ ������� ��������

�� ������������������������+�����'���9��#���������� ���������������

�������������������������������'���������������������������������4.� �����

���+�����#�&����#� �&+�������� �� ����� ��� �4.������������!�����

���������������������������������� ���������������������K��

��'������������F��������������������������������������4.��������������

�� ��������������������������������������������������������������������

��������� ����AA� ����#����������������������������� ���������

��������������������

Page 19: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

6��'����#�������� *,,!3*@1#��B

44��� *,,!3*@1#���5����3�! ������,�"!7�!�3�**���3

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

#�)��++�AB*""���66����"�C�A/

'

��������!������������������������B�������������������������������������#

44#��������������������������� ���4D11111111111D4�������������������������AA����#

�������������#�44���� ������

����������������,��*! ����������������������������������������������(��#")�*�

��� ����������������� ��� ������������� ��������������������� ���AA�*����

����������� �� ��� ������ ����� ����������� �������� #�)�#� �� ���� ������ �� �� �,��*! E

�,��*! ���������������������,��*! ������������

#�)���������F����� ��������������������������������� �����������������

�����������++� ��������������#�)�#��������������������������� �����������

���'���������������#�������������������������������� ����������� ���++� ���

��� �������� ������������ ����!������ �����#����������� �����AA�������� ������

C���������������'�� ����AA��������:�������������" ������������� ����/�

S�������� ����������� ����� ������������ ����������������� ����%����

�"�����#������ *,,!3*1#������ ������������B

�,E�����02!��7�)��#�)���7�#!���������7�)

�,E��!�2*��02!��7�)�#!���������7�)��#�)���7

������������������������

),��3��! *,�!#*�,��/

���������������� ����������� �������������#�)�����������C���������

�����'�� ���� ��� �������� #�)�� ������ �� ��� � �������� ��� ������ ��� �� ���

����� ����� ������������ ���������" ����������B

,��88#�)��++�AB*""���66����"�C�A/

��������������������������),��3��! *,�!#*T�������������������

6��'���������!�������������������������� ���#� *,,!3*<1#��#������ !

�������"������ ����������� ���D�B*""���66����"��D���� ������� �������� ���

�������������B

Page 20: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

44��� *,,!3*<1#���5����3�! �),��3�!�,� �"*��66

44���#"!,,������,�"!7�!�3�**���3

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,� *,,!3*

&

����!�*8

�)9"�#8

�����3�**���3$%

&

#�)��++�AB*""���66����"�C�A/

'

'/

���� !��$%

&

*,,!3*�),*�/

),*�13�**���3$%/

'

S�'���������������������������� �������� �����������#� ��� �������#� ��

��� ��� ��� )� ��#� �'��� ������� �������� ���� *,,!3*� ������ ���� ���� ��������

.������������������������������������������������ *,,!3*�������������

���������� *,,!3*��%��� ������������� *,,!3*�������������)9"�#E� �������

��������� ������������ *,,!3*� ����������� �����������#� �� �������� ������

3�**���3�������������������� ����������������

��������������� !��#����������������������������� *,,!3*������#��������),*��� ��

3�**���3���������������������������B*""���66����"� ����������� ������������

������������B

),*�13�**���3$%/

L�����������������������������������#���������������������������������������

��� �������������������������������������

Page 21: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������������������������������

(����� *,,!3*<1#������� ��������������������#���'����������������� � ����

��� �����������AA� ����#� �������� ���� ���������� ���� �� ���� �����

��������!�������������AA����������� ����������� ���������������������������#

�����������������������B

◆ I�������

◆ � ����

◆ ." ���������������������

◆ )�������

◆ &�������

◆ * ���

◆ %���

◆ �������

◆ ���������������������

◆ ���������

◆ ����������

4��#���

I������������AA����������F�������������������������������%�������������������

���������������������������#����������������������� ���� �� ������������

�������������������������������������������������

����AA������������������������������������ �����������������B

�����

������

�������

�������! ���

�������������! ���

.��������������������������������� �������!������������B

9��" ,�*#���*,�!���)*4�!",*��!")*

��� ,�*#���*,�!�����*3*���!��!9"*

#2!� ,�*#���*,�!�#2!�!#�*���!��!9"*

�"�!� ,�*#���*,�!���!#����!"5�) 9*���!��!9"*

��)9"* ,�*#���*,�!���!#����!"5�) 9*���!��!9"*�0��2� ��*��*#� !"��"!#*,

%����������� ��� ���������������G�������������������� ��G��������#��,�#������

� �������������������������������������������������������������������

%������������������������������������������B

+�7�*5,�*#���*�-� +�! *-/

Page 22: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

%������������������������������������������� �������������������"�� �����

��� �����������������������AAB

��� !��"*,/ 44����*3*���!��!9"*

#2!� #/ 44�#2!�!#�*���!")*�*38�F9F

�"�!� 9!"!�#*/ 44�9!�E�9!"!�#*

#��,� ��)9"*�:�G�H/ 44�2�325��*#�,�����!��!9"*

44��!")*���:*��02*��,*�

9��" #�"),�"),�G�� =�/

1�������

�AA� ���� �� ����� ���� �� ���������#� ��������� ���� ������� ������ ��� �����

���������� ���������AA���B

A ������� ! ���������

U ����� ������� : �������

V ������

��������� �������" ���������E����������������������AA� ������#��������

�� ��������������� ���������������������"������������

&���6�����5��������������������� ����#�������������������5H�����6I�� ������

��������������������6I�����I�

���������� ���#�J#� �������������������������������B

@KJL 44�3��*,�@?��2*��* !���*��!��*������,���

�������������� ���#�G#�����������������������������������������������

����������������)��"�� ��B

!�G�K/

���G�;1@L@HM<K/

=��������� ���������AA���B

P ��������� M ����������

MW �������������G����� PW ������������G�����

OW ����G���

WW ��������G������

����������������������������G������������GG��%����������� �������������������

��������� ������������ �� ������ �� ������� G� ��� ��� �G������� ����E� �" �������

������������������������O

(�����

:�G�H/

������������������1�������������������������������������������:�

Page 23: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������������

:�GG�H/

��������������#�����������������������������������������������������������

:����G������������1��������������������������������� ���������������

������������#��������������#��������������������������������������G�����GG

���������� ����� ��������������������������������������

.�������)���

*������ ����� ����������AA���B

JJ %94

XX �=

O 9� �,������������� ���-

���������������������������������������������������B

��� :�G�L/

��� 7�G�H/

����

$:�GG�L%�NN�$7�GG�H% ��� =L.

$:�GG�L%�OO�$7�GG�;% ��� =L.

P: ���)%*�.

��� �AA#� ���� ��!K�� �������� ��� ���������� =L.E� ���� �������� ��� ������

)%*�.�� ���G���������� =L.�����)%*�.������� ����������� ����� �����AA

��������E����������������������������� � ����B

(�*���*�� =��@

(�*���*�������.

����#��,�!G�������������������B

#��,������� =��G�@/

#��,������������G�./

&���������������AA#����������������������!K�����������������K��� ���#

�����������#�������� ��������������� ��������� ������� ��������������

����������L9�<�� ���#����������AA� �������������K��������������� �����

�� ��������� ��������#� �������� �����#������ ��� ���������#� ����� K�� �� ���

���������������������������������

�AA������� ���������9��"��� ����������������������)*������!",*�������#������

����������������������������!���������� � �������B

Page 24: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

44���9��"*!�1#���5����3�! �����*,��9��"?�F��)*F�!���F�!",*F

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

����:�G�L/

����7�G�H/

���$$$:�GG�L%�NN�$7�GG�H%%�GG���)*%

#�)��++�A���2C�A/

���$$$:�GG�L%�OO�$7�GG�;%%�GG���)*%

#�)��++�AQ),����*C�A/

���$$P:%�GG��!",*%

#�)��++�A���5���,��!",*C�A/

'

�2*���,�"!7*���)��)������2�,����3�! ��,8

���2

Q),����*

���5���,��!",*

������������ ��� ��������

%���" ��������������������������������������������#���������#���������#

�������������" ��������%���� ��������������������" ������������������

����������

�������������������" ������B

!�G�H

#�)��++�AB*""�����"�C�A

!�G�9�6�#

!�G�9�6�$#�D��%

.�����" ������������ �� �#��� ��������� ���� �� ����� ���������������#������

������������� ����" �����B

!�G�9�6�#/

��������������������������������������������9�����#��." �����������AA�������

�� ��"��6������������������������� �����B

!�G�9�6�#�D��

������������#����������������������������������� ����B

!�G�9�6�$#�D��%

Page 25: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�����������������

!�G�$9�6�#%�D��

����������������������������� ������������������(���������������������

�� �����������������AA� �������������B

$% �)95*:��*,,���,�,)���)��*��0��2��!�*��2*,*,�$2�32���*#*�*�#*%

P�5 �2*�)�!�7��*3!�������*�!����!���)�!�7� ��),

D�4�J �2*�!���2 *��#���*�!���,

6�5 �2*��"),�!��� ��),�9��!�7�!���2 *��#���*�!���,

+�+G�-�-G �2*��*"!����!"���*�!���,

PG�GG �2*�*R)!"��7���*�!���,

NN�- �2*�"�3�#!"���*�!���,�$"�0���*#*�*�#*%

��������������� ������������� ���������� �����������������&'���������

��������������� �����������������������B

&

#�)��++�A�0��,�!�* *��,111C�A/

#�)��++�A�2!��!�*�"�3�#!""7���*C�A/

'

�������� ����������������������������������������������������������������������

���������B

����$,�GG�<%

&

#�)��++�A�0��,�!�* *��,111A/

#�)��++�A��2!��!�*�"�3�#!""7���*A/

'

���������������,���������������3#������� �������������"��������(����������

����������������� ������������ ���B

���$,�GG�<%

#�)��++�A�0��,�!�* *��,111A/

#�)��++�A��2!��!�*�"�3�#!""7���,���#�A%/

������������ �����������������"���������������,��������G������3�

5��������

%���������������������AA������"���������������� ��������� ������

������������������������ �)��������������������������� �� ������� ������

������������������� �������������������������� ����������� ������������

����������G����#����� �������������������������������#����������������

�����������������������������.�����AA� ��������������������������������

�����������

!��#������'�������#������� �������������B������������ ���������������AA� ����

(�������� ���������#����� ������������������� !��������������!������������

Page 26: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����� !���������������������������������������������������� �����!

�����������������

������������������� ���������������������������B

+�*�)���7�*-� +�)�#�����! *-$+!�3"�,�-%

&

+,�!�* *��,-

'

6���������AA� ���#��0��)�#1#������������������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

����� 7�)�#$%/ 44� F 7�)�#F��*#"!�!����

���� !��$%

&

#�)��++�A�!����)�#����A�++�*��"/

7�)�#$%/

'

����� 7�)�#$%

&

#�)��++�A�7�)�#A�++�*��"/

'

�������� ���#� !������������������������#����������#�)���������������������#

�������������������#���������������������� 7�)�##����������������������#

�����������������#�#�)������������

(������������#������ ������� �������������������"�B

�!����)�#����

�7�)�#

���������������� ����������,��������������������� ���-�

������������

7�)�#$%/

��������������� !����������������� 7�)�#�

����"������#��������� �������� 7�)�#���� !����(������������������������

��� 7�)�#�����������"������#���������������������������������������� !�������

������������������������������#��������������������������������������� ���

�������������� ���"�������

��� �������� 7�)�#� ����" ������ ��� ����� ���#� �������������� ,������������

��������������!��-B

Page 27: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����� 7�)�#$%/

����������������������� ���������"���������� 7�)�#E���������B

7�)�#$%/

���������������������������������������B

����� 7�)�#$����%

&

#�)��++�A�7�)�#A�++�*��"/

'

9�������������������������������������������������������������������������!����

��� ��� ������������������������������������������������������������������

������������� �������������������� ��������������������� ������������

���������.�����AA� ���������������� ��������������� ��� ����� �����������

���������#��������������������

2�������

S���������������������������������������������������G�����������������������

������������������������ ���������� �����������������������������

��B

��� $+*:��*,,���-%

+,�!�* *��@-

*",*

+,�!�* *��<-

���*",*� ������ �����B��������������������������������F������������������

������������� ���������*",*�����������)��"�� ��B

���$��9)�,�+�����=�%

��9)�,�G���9)�,�6�@/

6��#������������������������������������������������������"����#����������

�������������� ��� ������������������ ������ ����������������������

���F������������������������� �������������B

���$�!7�GG�@%

&

#�)��++�A����!7A�++�*��"/

0**E�G�0**E�6�@/

'

���$�!7�GG�<%

&

#�)��++�A�)*,�!7A�++�*��"/

�)�S,!"*,S�*����$%/

'

*",*������������������������ ��������������������B

Page 28: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���$�!7�GG�@%

&

#�)��++�A����!7A�++�*��"/

0**E�G�0**E�6�@/

'

*",*

���$�!7�GG�<%

&

#�)��++�A�)*,�!7A�++�*��"/

�)�S,!"*,S�*����$%/

'

L�����*",*������� ���"������������� ���������������������������!7�������*��"

������� ��������������� ������AA���������� ��������� �������������� ��������

����������������"��F������� �����E����������������������"������������������

��'�� ���������������������������B

���$ ���2�GG�<%

���$�!7�GG�<M%

#�)��++�A�*!���*!�PPA�++�*��"/

*",*

#�)��++�A�*9�)!�7A�++�*��"/

9�������������������� ����������������� ��������� ��"������������������

������������������������������������������������

/������

(������������������������������������������ ��������������#��������#�02�"*

������������������������ �������"����������������� ��

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

����:/

:�G�@/

02�"*�$:�+�@..%

&

#�)��++�A�) 9*��A�++�:�++�*��"/

:�G�:�6�@/

'

'

���� ������� ����������������������������������������

Page 29: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

����:/

����$:�G�@/�:�+�@../�:�G�:�6�@%

#�)��++�A�) 9*��A�++�:�++�*��"/

'

���� ���������"������ ���������� ��� �������������� ������������������ ���

���������������D���������������������00�D��������������������� ������������

���������������������������B

���� $+*:��@-/+*:��<-/+*:��;-%

+,�!�* *��-

%����������" ��������������������#��������������������������������������

)��"�� ��#��������������B

����$//%/

����������������������� �

���������������������� �������������02�"*�������������������������������������G����

���"����������� ������������������������B

��

&

#�G�3*�#2!�$%/

���$#�GG���%

#�)��++�A��������*:�A�++�*��"/

*",*

4D����,� *�2��3�0��2��#��D4

'�02�"*�$#�PG���%/

��� �!������ ����������� ����������� ��� #,����� ��� ����������������� !��� ��

����������G�������G�����������������������������������!�� �����������L9�<

�������#������������������������$E���7�����������%��L������������������02�"*

���������������B� ��� ��1V�������������

��� �������� �"�� ��� ����������� ���� �� ������ ������ ��������� �)�#2!�� ���

3*�#2!�#������������������������������������������������

9���������3*�#2!�������������������������������02�"*����������" ������� ���

����������������������������� ����������������� ��������

4D

Page 30: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�D ���3�! �F#��7��1#��F8�#��7�,�!��!������)����

�D ,�!��!����)��)��,�������3��)���*0"��*,

�D4

(��#")�*�+��,��*! -

(��#")�*�+#,����-

),��3��! *,�!#*�,��/

���� !��$%

&

����#/

02�"*�$$#�G�3*�#2!�$%%�PG���%

&

���$#�PG�FC�F%

�)�#2!�$#%/

'

'

���&�

%���������������������������F������������������������������������������

����������� ���%���������F���������������������������S�������������������

�������������������������������B

��� �) [email protected]/

���������������������G�����������#�TU#�����������������������������������������#

�������������,����!��!����-��������������������������������������������

������ �������� ���������#� ���������� ������� ������K�� �����(�����������

������������������� �#�����������������������������K�������� �������

������������ ���������)������������������������������� �������� �������

������������������� ����"�� ���������������B

4D

�D F!��!71#��F8���""����*3*��!��!7�0��2�V*��,?���""

�D #2!�!#�*��!��!7�0��2�9"!�E,

�D4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

��� �T<.U/

#2!� #T<.U/

��� �/

Page 31: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����$��G�./���+�<./���G���6�@%

&

�T�U�G�./

#T�U�G�F�F/

'

'

9����� ����� �� ������ ���� ������������� ������ K�� ���� ��������� ��� ���� ��� ������

�������������30#�������������������������������������������������

����������9� ���!����� ��������� ��� ���� ��� �����AA� �� ���� � ��!����

�������� ��� ��������������������#������������� �����������TU�������������

�����������������#����������������,�������������������� ������������� ����#

��������#����-�

%�����������������������������������������������������������������FC.F#����

������������!�&�����, ����AA�*������������������,����3�������,������� ���

3������3-#����������� ��������������������������������������������������� ������

����������������������� �������������������������������������������#�������!

���� ���� ��������� ��� ������ ����� ��������-� ��� �� �������� ������ ,�������

������������������������������#,����#�#,����3�����#,��"�9-����������������������

����� ���� ����������!��������6����������B

3*�,$+,����3-%/ 44� *!��!�,����3������!��!��!7

!���$+,����3-%/ 44�����*���������������*3*�

!���$+,����3-%/ 44�����*�������������"�!�

L���������������������������B

#2!� ��,����3T<.U/

��� 9���!"/

��)9"* �"�!��!"/

�������������

3*�,$��,����3%/

���������������������� ����������������������"������������30���������#

���������������������������FC.F�� ������������������ ����������������������

�����30�������������E��������������������30���������#������"�����������

��� ������� ���� �������� ����� �����#� ��� �� �������� ����� � �����

�����������������

��� ���������� �������� ���� ��,����3����� �������� �������� ���� ���� ������

��������G���������������������������������������!���B

9���!"�G�!���$��,����3%/

��,����3�������������������������������������! ������������G��������������

������������������������!���B

�"�!��!"�G�!���$��,����3%/

Page 32: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

������

�AA� ������ ��������� �� �� �� ���� �F���!������� �������� ,��7-

� �����%��������������������������������#����������������������������

� ����������S�� �������� �� ������ ���������� �� ���!�����F���� ����� ��#� �

�"�� ��#������������� �����

��� ���� �����������������#��� ����� ����� ��������� ���������� ,��� �����-� ���

����!����'�� ����� ���� ������#� ���� ����� �����#� ���� ������ �� ���� ������

��������������� ����������� ��������������������%����������� ���������

��������� ����� ��������B�������� ����������� ����E�������� ��� ���

����������������� ����E��������������������������L��������AA������#���

���������������������� ����������������B

#"!,,���"�#7

&

����!�*8

#2!���! *T;.U/

#2!��!���*,,TH.U/

#2!����"��TIU/

��)9"*� ��,S�!")*/

��)9"*���* �) /

�)9"�#8

�������"S��*�$%/

�������"S#"�,*$%/

������*�*0$%/

9��"� #"!� $��)9"*%/

'/

������������������������B�������������#���������������������AA��� ��������

�����������"����#���������������������������������������������������������������

����������������������������������������(�������������������������#�/0��������

� ��������������������� ���������#�10�������������������������� ����

������������� ������������������������������������������������������ �� �

��)9"*��)���������������������#����������������� �������������� ��������

S�������������������������������������D�����������������������������������

�����#������D����������B

��"�#7� 7��"�#7/

(�������������� ����������#��������������������������������������D������

�����D�����������������,���#�#"!,,*,12-�(��#")�*�������� �����S�����������

�������D����������������D�����������������'���������������������� ��������

,���#����3��"*1#��-��6��'���������������������������������������#"!� B

9��"���"�#788#"!� $��)9"*�! �)��%

&

44�#2*#E�! �)������#"!� ��,�

44��!7�#"!� ������"�#7�2�"�*�

Page 33: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�*�)��$��)*%/

'

��� ������� ���� �� ���� �������� ��� ���� ����#� ������ ��� ���� ��'�� ������ ��

���������(������������������������������������������������B

9��"���"�#788#"!� $��)9"*�! �)��%

��� ������ ������������������� 88� ���������� ����� ���� ��������#"!� � ����������

����������������"�#7��������#"!� ��������������������������������� ��9��"�,���

��)*������!",*�������������������-�������������������� ����������� ����)9"*�

(������'����������������������������������������������������������������#

������������������������������������ ������(�����������������������������������

7��"�#7#�������������������������B

7��"�#71#"!� [email protected].%/

���������� ������������������"�#7#�����!�*������)9"�#�� �������!�*������

������������������������������������������������������������������������

�����������������������"�#7�D���"S��*�#���"S#"�,*#��*�*0�����#"!� �� ����)9"�#

������������ ����� �������� ����������������� �� ����� �� ������ ������ ��

���������

������������������������������������� ������ ��������������������������������'�

������� ��������!�*������� ��������� ��� �������� ����� ������������� ��� ���

�����������������������"�#7��������%������������������������"�����#��������#����

��� ���� �����'�� ��������� ���� ��������E� ���� �������� �� ����������� �� ���� �����

����������������'�

���������������������������� �����������������������������������������

�����������������������������������������������������������������

�������������

���������� ��������"�#7� ������� �������������������� �������� ����� ������� ���

������������������"�#7������������������)��"�� ��#����������� ��������������

��������,������ ��������� ������������-��������!������!������������E��������

������"��*����������������������"��������������� ���������������������"�� ����

������ �����������

������������� ��� �����������

���������"�#7��������"�� ��#�������������������� ���������������� ����

���������������S�������������������������������������������������������"S��*�

������"S#"�,*� ����������%� ����� ������� ��� ��� ���� ����� �������

�������������������������������������

����AA#���������������������������������������������������������������

����������%� �������� ��� �������� �������� �� �� ������������ ������������ �

���������������������� �������������������������������������������������������

Page 34: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

������%�������������������������������������������� ������������ ���

������#�������������������������������������������� ������������������

������������������������������������������ ���"���������������#�W�

�������������������������������� ���������������������������������������E����

����������������������" ����������������������������������������������������� �

,�����������-�

6������������"�#7����������������������������������������B

#"!,,���"�#7

&

����!�*8

#2!���! *T;.U/

#2!��!���*,,TH.U/

#2!����"��TIU/

��)9"*� ��,S�!")*/

��)9"*���* �) /

�)9"�#8

��"�#7$%/

W��"�#7$%/

������*�*0$%/

9��"� #"!� $��)9"*%/

'/

���������������������"�#7$%����������������������������������������������

�����������������������"�#7#��������� 7��"�#7�� �������������������������

�������� ��� �������� � � 7��"�#7� ��� ��� ��� ����� �F���� �������!� ����

7��"�#7������������(�������� 7��"�#7��������������������������������� �#

������������������������������#���������������������W��"�#7$%����������������

�������� ��� �������� ������������ ��� ��������� �� ��!����������� ���� ��������

7��"�#7�����������������������������������"�������������������6��'����

�"�� ����������������������������������������������������B

�����#"�*���)�#$%

&

��"�#7�2*���"�#7/ 44��*���*�#"!,,���,�!�#*

44�!",��R)�*�"7�#!""�#��,��)#������"�#7$%

44 ���,� *����#*,,��3

44 �*,��)#����R)�*�"7�#!""*��2*�*�������7�)�

'

S������� ������������������������������������#������������������(�'��

�������������������� ����#���������#�����

Page 35: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

1+��������

�AA� ������ ��� ������ �� ��������B� ��������� �#��������� ���� �������

�#���������� ���������������������"�� ��������#�������������"�#7�������

L���������������������#���������������������������������������������

��������������� ���� ����������������������������������� ��������� ��

���������������������L����� ������������#������������������������AA

���#���������6��5#����������������������

6��'��������"�#7���������������������������������������������������������

����������� ����

#"!,,���"�#7

&

����!�*8

#2!���! *T;.U/

#2!��!���*,,TH.U/

#2!����"��TIU/

��)9"*� ��,S�!")*/

��)9"*���* �) /

�)9"�#8

��"�#7$%/

W��"�#7$%/

������*�*0$%/

����� �*�*0$��)9"*��*0��* %/

9��"� #"!� $��)9"*%/

9��"���*�!���5G$��)9"*�#"!� � �%/

'/

������������*�*0�������������7��� �������������������������������

��� � ����� ������ ��� ��������� �� ������� �� ���� �������� � ������� �

���������������������������������������������� ����������!�������� �����

��������������������� ����#�������������������������*�*0��������������

���������B

7��"�#71�*�*0$H..1..%/

������������AA� ����5G�,�����������������������������!����������������

������������������-�����������#��� ��������������������������������������

������ ������ �����������*�!����������������������5G� �����������������

��� �������������������������������������������������������������"�#7����*�!���5G

�����������������������������#�� ������������������ ����9��"�

6������ ���������������������������������*�*0�������*�!���5G���������B

�������"�#788�*�*0$��)9"*��*0��* %

&

��* �) �G��*0��* /

'

9��"� ��"�#788��*�!���5G$��)9"*� #"!� � �%

Page 36: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

&

44�,)9��!#��#"!� � ����� �#"!� ��)��

�*�)��$��)*%/

'

�������������������������������������������B

���� !��$%

&

��"�#712�,��"�#7/

1

1

2�,��"�#71�*�*0$<H.1..%/

1

'

����������������������������������������������������#���������������#���'�

������������ �����������#���������������B

2�,��"�#75G<..../ 44���0�* �3�!�*PP

(���������� ��������������� ����������������5G� ���#������������"������

�����������������"�#7������#����C����'����������������������������*�!���5G���

������������#���������������� �������������������������������������������

���������2�,��"�#7#���'��������F���������������������������������������������

-���������

��������������������������������������������������������7�� ����������

�����������������#����������������������������������������������������������������

������������������������ �������������������������������������������������S�

����������������!��������������������������� ���

��������� ������������������������������������������������������E��������

�� �������� �������� �� ������� ������ ������� ����� ��� ����� ������� S�'��� ���

����� �������������������� ����0�

6����������� ����"�� �������������������������������������"�#7������B

#"!,,���"�#7

&

����*#�*�8

#2!���! *T;.U/

#2!��!���*,,TH.U/

#2!����"��TIU/

��)9"*� ��,S�!")*/

��)9"*���* �) /

�)9"�#8

��"�#7$%/

Page 37: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

W��"�#7$%/

������*�*0$%/

����� �*�*0$��)9"*��*0��* %/

9��"� #"!� $��)9"*%/

9��"���*�!���5G$��)9"*�#"!� � �%/

'/

�������������!�*#�����������������" ��������������������������"�#7#������������

����*#�*��������������������������������������������������������������� �����

+�������������������������������������������������������*#�*�����������9�

������������������������� ����������#� ����B

#"!,,� �����8��)9"�#���"�#7

&

����!�*8

��)9"*� �*,*��*/

�)9"�#8

����� ��S#"!� ,S9��),$%/

'/

�������������������!����!�*��������������������������������������������"�#7�

��������������������������*,*��*��%����������������� �������������������

������������� ��������������������"�#7��9����� ������������������������

���������������������������� ����������� ����������� ������������������

+����������������������������������'�����������������������������������

����� �������� ���������� ��������� �� ���� ����� ������� ��#� ��� ����#� ��������

������������ ��������#� ����� �������������������� ���#������� ���� ��������

���������� ��������� ��������#� �����#� ����� ��� ��� �������E� ��������� ��

����������������������������������������������F�����������������������������

�����������������������������

��� !��� �������� �������� �@� ���� �<� ��� �F����� �� �� �� ��"�#7� ���� ����

�� ��������B

���� !��$%

&

��"�#7��@/

������</

44 �!"",�2*�*����F��"�#7F�!���F ����F� * 9*�

44 �)�#����,

'

Page 38: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

.�������-01��&���

����AA����������� ����������������()�������� ���������������������:�

�����������������������������������������������������������,��*! �� ����������

���������������������� ������������������������������:��

�����,��*! ����������������������������� �����--�����++�������� ������

�� ��� ������S���������� ������ ���������� ��������������� �� ������

�� ���������#���������B

#�� ���������� ��������

#�)� ���������� ��������

#*�� ���������������

#"�3 &��������G�����������#*��#���������������������������� ��

������������� ����������� �������� �����������������E��������������� ��

�����������������#���������� ���,��*! #����������������������,��*! �� ������

������������������� ���,��*! #������������������,��*! �

������������������������B

#2!� #/

��� �/

�"�!� �/

��)9"* �/

���������� �������������������C����������������� ��������'B

#�)��++�#�++���++���++���++�*��"/

S������������������� �����������������������������B

#���--�#�--���--���--��/

6��������� �����"�� ��������������������AA��:������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

#2!��#/

02�"*� $#��13*�$#%%

#�)�1�)�$#%/

'

���3*������������������������ �,��*! ��"�������������������������� ��

���������������������#�� ����)�������������������������,��*! ����������

���������������� ���������

Page 39: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#��,����������G�I./

���� !��$%

&

#2!��9)�T���U/

02�"*�$#��13*�"��*$9)�?����%%

&

����#2!�,S��/

#2!�,S���G�#��13#�)��$%/

#�)�10���*$9)�?� #2!�,S��%/

'

'

3*�"��*��"�����������������5�@������������������� ����������������������

���9)���3*�"��*����������������������"������������������������������������������

3#�)�������������������������������"��������������������������3*�"��*�

#�)�10���*���������������#2!�,S�������������������� ���������

��������������������� ����������� ��������������������������������

�� ��������������� ���,��������������-�

Page 40: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

6����)������������������

S���������������������AA�����������������!������� �������������

���������

6��'�� ������ ��������������������������AA������ ����������� ���������

���� ������ �� �� ����� �������� ��� ��� �������� ��� ����� �����B� ���� ������ ����

!##�)��,12E� ���� �������� ���� �����!##�)�#1#��E� ���� ���� !��� ���� ����

!##�)��,1#��#�����������������C����'��������������������������� ��������������

#),�S!##��)���#�����!##�)��,12�����������B

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

����!##S�) /

�)9"�#8

�����,*�)�$%/

����� "��3*$�"�!�%/

�����0��2��!0$�"�!�%/

�����9!"!�#*$%/

'/

!##�)��,12��������������#),�S!##������#������������������!�*����������������

����)9"�#����������������� ��������������������������������������������

���!##�)�#1#��B

4D

�D ���3�! ���"*� F!##�)�#1#��F

�D �*���*,�F#),�S!##F� * 9*���)�#����,1

�D4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*� A!##�)��,12A

44

44 #),�� *�S!##�)��� * 9*�� �)�#����,

44

����� #),�S!##88,*�)�$%

&

#�)��++�A���*���) 9*�����!##�)������9*���*�*�8�A/

#���--�!##S�) /

#�)��++�A���*�������!"�9!"!�#*8�A/

#���--�9!"/

#�)��++�A�),�� *��!##�)���A�++�!##S�)

++�A�#�*!�*��0��2�9!"!�#*�A�++�9!"�++�*��"/

Page 41: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

'

����� #),�S!##88"��3*$�"�!�� "��3* *��%

&

9!"�6G�"��3* *��/

#�)��++�A���3* *������A�++�"��3* *���++�A�!##*��*�A�++�*��"/

'

�����#),�S!##880��2��!0$�"�!��0��2%

&

���$9!"�-�0��2%

&

9!"�5G�0��2/

#�)��++�A���2��!0!"����A�++�0��2

�++�A�3�!��*�A�++�*��"/

�*�)��/

'

#�)��++�A��,)���#�*���9!"!�#*�����0��2��!0!"����A�++�0��2�++�*��"/

#�)��++�A���2��!0!"����A�++�9!"�++�A�3�!��*�A�++�*��"/

9!"��������G�$�"�!�%./

'

����� #),�S!##889!"!�#*$%

&

#�)��++�A�!"!�#*����!##�)����,�A�++�9!"�++�*��"/

'

)������#������������!##�)��,1#��� ����������������������� !��������������������

�����C����'�������������������������������������#),�S!##������������������#���

��������F�����������!@������������ �����������,*�)����������������������������

����������� �� ����������� �����F���� ��������� ���� ���������� � ����� ���

���'����������������������������������!�������������� ���#�����������

310���������������������������100����������� ���������������������� ���

������������������ �������

4D

�D ���3�! ���"*� F!##�)��,1#��F

�D ����*,��2*�F#),�S!##F�#"!,,

�D4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*� A!##�)��,12A

���� !��$%

&

#),�S!##�!@/

Page 42: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

!@1,*�)�$%/

!@1"��3*$<H.1..%/

!@19!"!�#*$%/

!@10��2��!0$H..1..%/

!@19!"!�#*$%/

'

��������� ����� ��,��*! � ��� ��������� �������!##�)�#1#��� ����!##�)��,1#���� ��

�������#����������������#�������������������������������������������� ��

������ ����������#�������#�)���!##�)��,12�����������������������������#�������

����������������������#),�S!##���������������������� ����

���������������������������������#),�S!##�������������� !��#�������������

������G�����������������������F����!@�� ���������������������� !���������

G���������������������������� ����������� �����������������#),�S!##����

���������������������������������

�������!������� ������������������������������������������������F���!

������� ��������� �����L����� ����&������AA�&������1��� ���#� �

�������������������������!����B

9##;<�!##�)��,1#���!##�)�#1#��

������������"��������� ����!##�)��,1*:*�� ��"���������� ���#��������

������!����B

!##�)��,

S���������������������������������� �����(��������������������#���

����������������������������,��������������������������������������-B

���*���) 9*�����!##�)������9*���*�*�8������

���*�������!"�9!"!�#*8����

�),�� *��!##�)���@<;LH�#�*!�*��0��2�9!"!�#*�KH.

���3* *������<H.�!##*��*�

�!"!�#*����!##�)����,�@...

���2��!0!"����H..�3�!��*�

�!"!�#*����!##�)����,�H..

Page 43: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���&

(��������������������� �� ���������������������������������������������

�AA���������������#��'������ ����������������������������� ������� ������

���� ������������������������������������ ���������������� �����������AA

��������� ���#������������������������������������0V����������������

���� ���������������� ������������ �������� �����#���������������� ��� ���

������������ ���B

◆ ���C�����������������'������� ����3���$

◆ ����������������������������

◆ %����������������

◆ )�����

◆ I��������������

◆ ���������������� �������������

◆ �� �����

%�����������'���������'�������������������������� ����������������!�������

�AA������ �#��������������#������ ���#��������������������������������

����������� ���� ��������� ���������������������������C������������'������

�����'��� ���������AA������������ ���

Page 44: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������

� 4������������ ����������AA���������������������� ������� ���������������

�F����� ������������������������������������B�������#�������#������������

��"����� � �����+����� ��������� ����� �������� ����#� �� � ���� ���������

������#��������������������������

� ."���������������#),�S!##����������������������������,!���3,�� �����������������

���*�*,������#!"#S���*�*,���������������������������������������������������

���#),�S!##���� �����������#!"#S���*�*,�������������!##�)�#1#���

� �������������������6G� ���� ���#),�S!##� �� ������������������� �� ���

���������������������������������������'����������

Page 45: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� ����������������

��!�������� �"��!����)���$���! ���������� %�

*���������� ��������! ���������������������� (%

+�$$��������!��$���!���! �������������� (,

-�����!���� ��$�����! �������������������� (.

��������/!����0����!! �������������������� ,%

�"��� ��1��!�� ������������������������������ ,�

�'����!�! ���������������������������������������� ,�

Page 46: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

2��������&�����������)����

���7����� �&���

������������������� ������AA������������������� ����#��������������

�������� ��������� ��������� ���� ���������� �������������%������������� ��

��� ����#����������������� ���������� �������AA#�������������������� ��� �������

���������������������������B

9��" ���:�����������E���K���� ���������������

#2!� ���������������������#�����������������

��� ����������������K���� ������������������� ���

�"�!� ��������! ��������������! ����,���-������

��)9"* �������! ��������������! ����,���-������

S������G�������������� ���������� ��������������������B

,�3�*� "��3 )�,�3�*� #��,�

,2��� ��"!��"* )�!9"*

����� ������������������!������������������������������������������ ���#

���������������������������F���#�����#2!���� ��� ���������������������������

�����������#2!��� ����������������������������������������������������'�

� ����������

������� �����������/3!���� �����D�/3!���������������������������K��D�����

������ ����(������ ��������������������� ��������������(�������1#� ���

�����������������K�����/3������� ���������������������L9�<��������#��������

���������������52!����L9�<��� �����������������������#����������/3!���

������������������K���;��������������� ���#��������������AA� �������/3

�����,2������-��%��"�!������������������� ������������/3�����#�����������)9"*������

� �52�������������������

S������������������������� ������������G������������������������������� ����

��K��������������������������� �������������������� �����������������������

������������������� �����������G���������

�� � ������� #2!� ��� �"�!� ��)9"*

,�3�*� � �

)�,�3�*� � �

,2��� �

"��3 � �

#��,� � � � �

��"!��"* � � � �

Page 47: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������������������� �����,�3�*���������������������������������,/3!���-�����������!

����������#��������������������������������E�0����������� �������� ����� ����������

,�3�*�������������������)�,�3�*��������������������������������� �������� ��

����!������������������������� �������������������������)�,�3�*�������� ������

��������������������������������������

(�������������K����/3�����#�,2���������������������5����������"��3��������/3�������S�

������� �����,2����������F����,2���#�)�,�3�*��������)�,�3�*������"��3�������"��3�

��� �������� �� ���� ������������ ������� ��� ���� ������ ����#� ,�3�*�� ,2���� ���� ���

)�,�3�*��,2��������������������#�������,�3�*��"��3���������)�,�3�*��"��3�����

�����8� +������������#�������)����

���G��������#��,��������� ���"������������������#������ ����������������������

������������������F������������������������������G��������������������������

�AA� ����#�����#��,��G��������������������������"!��"*����� )�!9"*��������

���

���G����������"!��"*� ������ ������ ���� ����� ����������F���� ���G������������

�������������������" ��������� ��������������� ������������������ ���

)�������������������������#�������AA��� �����������������������

��������������������� ���������������������������������������������������

������������� ���� ����!����� ������� ��� ����������� ����������� ����������

G��������������������� ����������������� ����������

)��"�� ��#��������������G��������������������������������#������B

��"!��"*�����#"�#E/

�����������#"�#E������������������������������ ������������������������

�������������#"�#E�������� ������������������G�����������"!��"*#������������

#"�#E������������ ��������� ���� ����������

��� )�!9"*�G�������� �������� ��� ������ �����������������������������������

�����������������#��������������������������������������������������������

#��,��� ����������������������� ���2�

9����������������)���� �&���

6�����������"�� �������������������������������������������������/3!����������B

,2����:/ 44�:��,�@X�9��,�"��3�!���#!��2�"�����*3*���!")*,

44�����2*��!�3*�5;<KXK�!���;<KXK

����7/ 44�7��,�;<�9��,�"��3�!���2�"�,����*3*���!")*,�����2*��!�3*

44�5<@LKLI;XLK����<@LKLI;XLK

"��3�V/ 44�,! *�!,�F���F�!9��*

Page 48: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

)�,�3�*��,2����!/ 44�,�3�59�����,!9"*�?�#!��2�"����,����*����*3*�

44��!")*,�)�����XHH;H

)�,�3�*��9/ 44�F���F��*���������0��2�,�3�59�����,!9"*�?�#!��2�"�

44���,����*����*3*���!")*,�)�����L<MLMXK<MH

�"�!��#/ 44�#��,�;<�9��,�"��3�!���#!��2�"��!���!#����!"��) 9*�����!

44��"�!���35��������� �����2*��!�3*�;1L.;���@.Y;I���

44�@1@KH���@.Y5;I

��)9"*��/ 44����,�XL�9��,�"��3�!���#!��2�"��!���!#����!"��) 9*����

44��2*��!�3*�@1KMI���@.Y;.I����<1<<H���@.Y5;.I

6�������� ���#� !:���@1#��#������������������������ ������������������������

����������������������������� ���B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F !:���@1#��F�Z������3�! ����������2*�"!�3*,���) 9*���2!��#!�

�D����������������������9*�,���*�����!��F���F�����2�,�#� �)�*�

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

������������ !:?�!##) �G�@/

��������44��������#�* *���!##) ����!�"����)���"�!##) �3�*,��*3!���*

��������02�"*$!##) �-�.%

&

!:�G�!##) /

!##) �G�!##) �6�@/

��������'

��������#�)��++�A�!:� ) ������!")*��,�A�++� !:�++�*��"/

'

���� ������������F���������������������������B�����������������������

������������!##) ����� ��������������������������������������!���������������

�������������������������8�����������������#���/3!����������������������C���'

������������������������� �������#������ ������������2����������

�"�����������������������!##) ���������"������������������������������

����������������&���D�������������������� �����D���������!;������K�7�

��������������� �������1��������,��������200��������02�"*�� ���������#

������������������������� �������O-�

)���� ��� ���� ���� ������� ��#� !:���@1#��� ������� ����� ���� C����!���'�� ��

�������#����������������������������K��������52�����#����� �����C������

���� �����'�� �����"����� ������� ������� ��K�� ����� ���� ��� ����� ��� /3� ����� ��

Page 49: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

3#�2$#2�/#52$� D�����������200�������� � �� �� ����������������� ���� ����

!:���@1#����"���������������1��������� �����"���������������������K����52

�������#������#��#33/#/$3#0/5#�12#$$1#�0$O�%��200��������� �� �������#���

������������������*+,�!���������������!##) ������� �������������������������

�#���������������������� ��� ���� !:���<1#��� ��������#����������"�� ��

������AA����������������������C���!�����'� �������B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F !:���<1#��F�Z������3�! ����������2*�"!�3*,���) 9*���2!��#!�

�D����������������������9*�,���*�����!��F���F�����2�,�#� �)�*�

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

������������,2����G�@?�!##) �G�./

��������44������"����)���"�!��)��2*��,2����0�)"��,*���2*�,�3��9��

��������02�"*$,2����-�.%

��������&

����������������44������!���,2��������2*�!##) )"!����!�����)9"*���

����������������!##) �G�!##) �6�,2���/

����������������,2����G�,2����D�</

��������'

��������#�)��++�A�!:� ) ������!")*��,�A�++�!##) �++�*��"/

'

������������������������� � ������ ��������#� !:���<1#��� �������� � �����

����� �������#� ����� ����� ��� ���� .���� ����� �������� ������� ���� �������� ���

����������������,�����-��������������������������G�������#��0�,��������3-#��00

,��������2-#��000�,���������-����������.��������52!����������#������F����52

����� ��������#�������������,52��

���������-�����������������������������%������

���#� ���� ������ ���� ��������� ���� ���� ��"����� ������ ��� ����� ��� !##) �

=�����������������K���������������������������#� !:���<1#����"������������� ���!

�������������������

(���������������� !:���@1#���� !:���<1#��#������� ������������������������

����B

�!:� ) ������!")*��,�<@LKLI;XLK

������������������������������������������������������������������ ������ ��

���������#���� �������#� ����� �� ��� ���� ��������/3!���� ������� ,4���������

�������������(������<7#������� ������-�

Page 50: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

-������������ ��� ��������

(������������������������ ������AA� ���#����������������� ����� �������

�����������������������������������S����������������������������������#�����

��������#���������������������

��� !:���1#��#� ���� ��������� ,2���� ���� !##) � ��� ������������ ��� ��� �� ����

���������B

����,2����G�@?�!##) �G�./

������������������� ��������������� ��� ���� ������������� ���� ���������������E

����������� ������������������������������������������B

����,2���/

,2����G�@/

S������������������������������� ��"��3���������������B

"��3�9�3S�) �G�@......�/

��������������" �������������������� ��������������000000����������������������

%������������� ��#2!���������������������������������,�������-������B

#2!��#�G�F!F/1

#2!����G�MK/ 44�,! *��2��38�MK��,�������F!F

����������� �&��

.�����" �������������� �����������" ���������������������������#������� ������

���������������������������������������E������#������" �������������������� �

���������������������������� ������������#������������������������" �����#����

�������������������������������������������� �B

�����*,)"�/

����!�G�H/

����9�G�X/

�*,)"��G�!�6�9�6�K/ 44��!")*�����*,)"��9*#� *,�@I

6��#���������������������������������� ������,�����������K������ ������������ �����-E����

������������������������������������������������#������#�������'��������B

�����*,)"�/

����!�G�H/

��)9"*�9�G�X1;HK<M@/

�*,)"��G�!�6�9�6�K/

��� �" ������ !� 6� 9� 6� K� ��� �� �� �� ��)9"*� D� ��� ������#� ���� �������� ����

��������� �� ���� �� ��� �� ���� ����� ������� ��� ������ �� ���� �������� ��

@I1;HK<M@#��������������������������������������������@I��&������������� ���

�*,)"�� ��� ���#� ���� �� ���� ���� �" ������ ,��)9"*-��� ���� ����!����� ������� ���

�������������������C�������'��������#��������� �����������������

Page 51: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

.&��� ������

����������������������#��������������������������������������������������

�" ������������ ���� ����� �� ��� �����������������������������#� �

�"�� ������������������������������#����������������������������#�G���!

��������&��#����������#���������'���������� ������������#������ ������������#���

������" ���������������������������������� �� ���� ���� ������ ����AA� ��

������������!����������

� ������������������������������!��!�������������#�������������� ��� ������#

����������� �������������� ���"���������" ������� �������������������������

�������������" �������������������������������������G�������������������

�� �����������

�!������#�������������������������������'�����������������������������������

������������� ����������8�������#���00�� ����� ������������������������B

�!7,S���!"�G�$"��3%77�D�;XH�6���S"*!�,�6��!7,S7*!��6���/

������5!�����������������#����������������������������77�D�;XH��"����������/3#$5$

���������K����������������������������������� ��������#������� ��������������

�����������$"��3%77�D�;XH?�������77���� ����������"��3#������������������#

����������� ��������3#�2$#2�/#52$���������5!�����/3!���������������

����AA#������" ������H4K�������K�#����������������������������������������'�

���������#������������������� ������ �����B

$�"�!�%H4$�"�!�%K

������������������������#�1K@L<I111

���� ��� ��� ���������� ����������� �� ��������� ��� �������� ���� ���

�"�#!,�1#��B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

��)9"*����G�;1@L@HM<K/

#�)��++����++�*��"/

#�)��++�$���%���++�*��"/

#�)��++����$��%�++�*��"/�44�!"�*��!���*

'

���������������������� ��������������������������������������������,����

��$0�-������������� ������ �������������� ��������#� ����������!������� ,��� ��� ��

�������������-�����������������������������#����������������������������

��������������:�AA��� ����������%��������G�����#����������AA������������

��������� ���� ���� ��������#� �� ������ �� �" ������ �� �!�������� �����

�������� ��������� ����� ��� �������� ��#� ��� ������������!������#��������S�

�������������� �������!�������������#������� ������������#� ������������ ����

����������,������������O-

Page 52: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

9���� ���+�������

I����������������������������������������������� ��� ������������������

������)���� ���������F����#����������������������������������������������E

����������������������������������������������������������������������������

����������

�����������AA�������� ���������������������������������������������

���������� ������������������������������������

%�����������������������������������������AA��������,�����#���-����-��S�

��������������������������������������������������

%���������������������G���������������������������4�������������������������

� ����������������������� ������������������#�S#�����������������������

�������������������������������������������B

�*:�S�*#���S��� S��"*

�����������������������*:��*#������ ��"*��9�������������������� ����������

������������������� ������������� ������B

�*:� *#������ ��"*

S��������'������ ���������#��������������� ��������������� ����������

�������%��#���'�����������������������������������������������������E���

����#�������������������������������������������������������������I������

����������������� ������#�������� ������������������ ������"�������/�

��������E������AA��� ���������������������������/����������������#�������

���������������

6�����������"�� ������������������������������������B

��� 9!�E59!" 44�����3P���#���*#��27�2*�

��� @,��� * 44�����3P�"*!���3��) 9*�

��� �*0[!## 44�����3P����!"���#2!�!#�*�

Page 53: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������� ���������

�������AA� ����#�������� ������������������������������������������

����B

A ������� ! ���������

U ����� ������� : �������

V ������

�����������������������������#���� ���������������������������������AA#

��������������������������������������������� �����"�� ��������������

66 ������������������#��������!�66

55 �����������������������#��������!�55

6G ������G�������������������#��������!�6G�H

5G ����������G��������������������#��������!�5G�K

L����������������� ���#�4#�������������������� �������������������

����������������G�������������B

;4H �G�����K�

H4; �G������

�����������C�������'� ���#�J#����������������������������������� �

�����#2!���S�����'���������������"�!�����)9"*� �������+���� �������#��������

����������� ������������������������������������������.��!�����

�������,���"�� ��#�5$!�6�9%#���� ����������������!�5�9-������������

������������������S����������������������������������������� �������

������������������������B

��� :�G�H/

��� 7�G�X/

��� V�G�K/

��� �*,)"�/

1

1

1

�*,)"��G�:�6�7�D�V/ 44 �*,)"��GG�LK

�*,)"��G�7�4�:�D�V/ 44 �*,)"��GG�K

�*,)"��G�$:�6�7%�D�V/ 44 �*,)"��GG�KK

�*,)"��G�57�D�V�6�:/ 44 �*,)"��GG�5;K

�*,)"��G�V�4�:�J�7/ 44 �*,)"��GG�@

)������#����������������������������������� �������" ���������B��������

���������" ���������������������'����� ����-���/�� �������#����������������

��0������������������������������ ����2�

6��� �������"�� ��� ���#��������,) @���1##� � ����� �� �������� �����!������

%������� ������ ����� ���� ��������������������%�����%�� �� ������ �0!���!��#

�����%��������������������������������������!���������"����������������������

�����������������F����������������������������������00��%���#����������������#

Page 54: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��������������������� ������������������������������ ���������������������������

�G��������G��$��6�@%4<#��������������������������������������������������������������

6��'������ ���B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F,) @���1#��F�Z ���3�! ����#!"#)"!�*��2*�,) ����!""��2*����*3*�,

�D�����������2*��!�3*�@�����?�),��3��2*��9*"�!����� )"!�$��D�$��6�@%%4<

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

�������������?�,) @���/

��������#�)��++�A���*��!��) 9*�8�A/

��������#���--��/

��������,) @����G�$��D�$��6�@%%4</

��������#�)��++�A�) �����2*����*3*��,*��*,�@����A

����������������++���++��A��,�A�++�,) @����++�*��"/

'

���������������������������� �����(������������#������� � ����������

�������������������������������������������������������� ����� ��������#�#��#

�������� �� ������������� ��� ������������ ����� ���������������� ���

����������������,C�'#�C0'�����C0'��������������00-�����������������������

����������������������������������%���'��������������������������������

�����#������������� �������������#�)�������������6��'�������" ��������� ����,���

�� �������������-B

���*��!��) 9*�8����

�) �����2*����*3*��,*��*,�@����@..��,8�H.H.

Page 55: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

:�))�������������)���������

.����������������F����D�9��"#�#2!�#����#��"�!�#���)9"*�D�������������%�����������

�" �������#����������������������������#�����������������������������������������

�����������@L#�������������F!F�����������������FC�F�

����������������������������������������AA��" ��������������������B

��������������� ����������������

�������������� )������! ������������

� ���������������������� .�����������������

-������� ��������

��������������������2������������F������������������ �������%����������������

��������100000#�����������5!����������������������������������������������

������������������� ���������"��3�����

%������������������������ ���"������������������K�B�.@L�������� �������������

���������,����-������G�������������@<��%������������������������������ ���"�.:

�.�B

.:@L����.�@L

.:<�����.�<�

����� ���������������������������� �'������,������5-��6�"���������.:@L

�G�������������<.��.:<���G�������������LK�

�������� ��������

%����������������� �������������������#�����������������������G����B� F!F��%

����������������������������%�����������������������������������B

#2!��#2�G�F!F/

#2����������������������������������MK��4�������MK���������������� ������!

������F!F��������%����������������#����������������������������7�������L9�<

������������������������������������������#����"�� ���.&�4���,�������������

�&+������� ����������������-#������������������������������F!F�������������

%������"�� ��B�F.F�,� ������&���-���������������������������%�����������LI�

F.F���������������������������������������&���#����������������������B

��� ��G�./

#2!� #�G�F.F/

�������������������������������K�E�������������#�������������������LI�

���������B��������������� ������������AA������������,������������0���311-

������ ����� ��� ��������� ���� ������ ������� �� ����� �������� ��� ���

��������������������������������������,������-�������� �����������������#������

���������� ���� ������ C�'�� ���� ���������������#� ������������������������ ��

�����������������������������

Page 56: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������� ��������

S�� � ���������������������������� ������� G����E� ������� ������� �����������

�����������������G����B

A�2�,��,�!�,����3�#��,�!��A

%������������������������������������������������ ���������G����������� ��

������������������E���������������������

5������3������ ��������

)������! ���������������������������������������������������� ����������

������������������������������B

@1.

;;H1KXM<

51....M

;@1L@HM<K*5@

)������� �������������������� ����)9"*���������" �������������"������������#

�����B

@1K;<.H.I�

�������������� ���"�!��

������� �������� ��������

�������������������FC�F����������������������� ����������������������� �����

�����������������D���������������������0�������

������B

C� 44��*0"��*

C� 44� #!���!3*5�*�)��

C� 44��!9

C� 44���� �**�

C9 44�9!#E,�!#*

C� 44��*���#!"��!9

C! 44�!)��9"*�!"!� �5����

CC 44�F*,#!�*F�9!#E,"!,2

C[ 44� F*,#!�*F�R)*,����5 !�E

CF 44�F*,#!�*F�,��3"*�R)��*

CA 44�F*,#!�*F���)9"*�R)��*1

������� ����G������������������ ���������������!�������������!������������

�����������#�)������������#�FC�F�����������������������������������������������

������ �������� �� �� ���� ����� �� ���� �������� �� ��� ������� ,���� ����� ���

���� �����*��"���� �����-��S������������������������G���������%�����,����-

������������FC.@<F����������������������������������#��������������������� �����

������������������������������������%�����

Page 57: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������������������������������������L���������������������������������

� �������������� �� ���� �������� �������� �� ��� �� ������� ��� �������

��������������������������������������)��"�� ��#��������������

#�)��++�A�2�,��,�!���)9"*�R)��*�,7 9�"8�CAA�++�*��"/

��������������� �������������������� ��B

�2�,��,�!���)9"*�R)��*�,7 9�"8�A

����������������� �������������������������������������������������������

���� ����������������������������������������#���������������������G�����

���������"�� �����������%����������������B

(�*���* ��� FC.<XF 44�,7�#2����,*

(�*���* ��� FC.;;F 44�*,#!�*

���������������������� � ����#��G�����������������������������������

��������������� �����������������������������������������������������

������������������������FC.;;F�

6�������� ���#�#2!���� 1##������������������������������#2!�������������

������� ��������������������������������������������*�������������������B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F#2!���� 1#��F�Z ���3�! ����,2�0����*���*�!��������!

�D #2!�!#�*�F,��!")*�!##�����3�����!���),

�D F������F���� !��#��*,

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

�(��#")�*�+��,��*! -

�),��3��! *,�!#*�,��/

�(��#")�*�+#,����-

����� !��$%

�&

������������#/

��������������$A���*��!�#2!�!#�*�8�A%/

��������#�G�3*�#2!�$%/

��������������$A�2!�!#�*��J#?��) 9*��J�?�B*:?�J:?�#�!"�J�C�A?�#?�#?�#?�#%/

'

���������������������������V! ���"�������������������������������� ������

����������������B�J#�������C�������'E�J��������C,�������-������'#������

��� ��������� ����� � ���������� ����������������������������������

Page 58: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��������������������������������������� ��������������������������������� �

�������������������������������6��'�������������� ������������������� ��

����������������� ��������� ���������������G�����������

���*��!�#2!�!#�*�8��

�2!�!#�*��[?��) 9*��X;?�B*:?�;�?�#�!"�KK

���������� ��������

������������������������������������������������������E����"�� ��B

*�) � ,*!,��,� &�� ���?�=��� ?�=�=��?����� '/

���������������������"�� �������������������������������������0#��#�3�����/

�� ��������#������������ ���������������� �����������������B

*�) �,*!,��,�&

�� ���G@?

�=��� G<?

�=�=��G;?

����� GL

'/

6��������������������������������������#����������������������������������

�������������������������������������� ��*�) �,*!,��,B

*�) �,*!,��,� �� *S��S7*!�/

�� *S��S7*!��������������� ������������� ���#��=��� #��=�=�������5

�� ��S���������������������������B

���$�� *S��S7*!��GG��=��� %

3�S,)�9!�2��3$%/

%��������� ��������������������������������������������� ����������

�� ��������������������������������AA��������������������

.��������� ��������� ����� �������� � �������#� ���� ����� ��� ������� ��� �� ���

� ������������ ������ �������� ���������������������������� ��������������

������������������������!�"���������� ��#������� �����������������������

�����������������B

44 *�) � �32��9*�),*�����!�,��*!�,2**�

*�) ����)��7�*�&������ ?�� �����?��� ���'/

*�) ����)��7�*��!�!�7�*/

44�,*���*�!)"���!�!��7�*

�!�!�7�*�G� ������ /

Page 59: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��������������)�������

��������� ��� ��������

%� ����������������� �E�������������������� �����������������������������������

�F�������������%����������������������������� ����������������������������

����������������������� �����������������������������������������������������

��������7�����#��� ������������#� ���������F����� ����� ���� ����������

�F�����

S��������������������������������������������� ��������������B

#2!��#/

#2!��D#���/

#����������������������������F�������� ��#2!��

������������B

#����G�N#/

������������������� ��������������������������#��������������� �����#����

%���� ��������������#�#���� ����� ��#E�D#����������������� ���� ��������� ��� ���

������������������������������ �����#�����D#�����G�����#��9����������'�����������

���������������� ��������������������������������������������������������

�F�����������������������������������

S����������������������������������������,�� ��������������������������������

������������� �����-�

��� ��G�X/

��� D���G�N�/

�����������"�� ���������������� ����#�����������������������������������B

��GG�X

���GG��2*�!���*,,�����2*����*3*���

D���GG��2*��9\*#��!���2*�!���*,,?�X

%���F�������������������������������������D�����G������� ��������������

���� ����B

��� D���G�N�/

� ����������������������������������� ������D#��������� ���������������������#

��������� ��������������������������������B

D��

�����F������� ���� ����� ��� ,X-� ��� ��������� ��������� � �������� �������������

��������������G������D����������������� ��������������������������D���������

����������������������������� ����#���������������������������������

���������������������AA� ������

Page 60: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��������� �������#;����

S���������� ���������������������F�����������������������������AA#����������

����#������������������ ���������������������#���'�� �������������������

�������#��� ���������������������

������������������������������ ���������#�����������!�� ����N�����������

������������������������ ��������������������������������������B

��� ��G�X/

��� D���G�N�/

���������!�� ����������������������������������� ������D��"�� ����������

�������������������������������������� ������������������ �����������������

������G�����B

#2!�� ��,����3TH.U/

#2!��D#����G�N��,����3/

#�������������������������������������������� ��������������� ������1����!���

���� ����!2��������E������������������ �����������������'��������

#2!��D#����G���,����3/

������������������������������F���������� �������������������'��������������������

���������������������������������������������������G������������AA���������

�������������������������������������" �������� �������

9�"�#�������������������������������������������������� ����� �����������������

���������B

#2!���*:�"��*TH.U�G�A�!�7�!��� *�!�����������2*� �!"��A/

#2!��D#��G��*:�"��*/

����������� �*:�"��*T.U� ������������� F�FE������������� �*:�"��*T@U� ��� F!F���������

��������#�������������D#����������� �����������������������������F�F�� ����������

D$#�6@%����F!F�����������������D$#�6<%����F�F��S�������������������� ����2����

$��� ���������������������

6����������"�� ��� ���#�"�����1#��#����������� ������������������������

������������������������#���� ������������������������������

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F"�����1#��F�Z������3�! ������,�"!7�*!#2�#2!�!#�*�����!�"��*�!"

�D�����������������������,����3�),��3�!�,� �"*�#2!�!#�*�������*�

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

Page 61: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��������������������� !�"�#��$�%&����'�()�*$��'����+(�������+$,#-

�������������.�����/�.0-

��������������"�0�"�������-

��������1���$2.0�P"�34 35

���������

�����������������(&��66�.0-

����������������077-

��������8

���������(&��66�#4+���+9����#�66�0:������66�#��������(+9#�66�$+,�-

8

% ����������������������#��$�%&����'�()�*$��';;;#������������������� ���

���#���������"���������� �����������G��������������� ����� �������������#

��� ��������������� ���� ������ ������������������� ���� ������� ������ #��$�%&����'�()

*$��';;;#�� ������������� �����������������!������ ���������������������

�������#�CY0'#��� ������������������G��������Z ���G�������������T[��&������

����������������0�������� ���������������������������� ���#��������������������

0�����������������������#����������������������������������� ������������������#

��������������������������������B

��$�%&����'�()�*$��'����+(�������+$,

���+9����<=��������(+9

�������������������������������������� ���������������������������������������!

�����#����������������������������� �"�� �������#��������������� �����#

�������������AA� ��������� ����������AA� �����#�������������

������ ��������������������������#������ ��������������������������

������������� ����������� ����������������AA����������

<�)�������

�AA� ����������������������������������� ����������������������������������

����������� ����������������������� ���%������������������ ���������������

�������� ��� ����E�������� ��� ����� ����� ,�������� C����� ��������'#� �����AA

������������� ��������������������� �����-��S�������������������������

��������������������������������#���������#����������,�C������'-���������

�!�����=���������������������������� ���������������������������D������

��� ���/�D����#�����#����'������� ����������������������� �B

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

�+��*��+25

Page 62: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�����@ G�K/

�����< G�I/

����N�*�S� G��@/

�*�S��DG�H/

#�)��++��*�S��++�A�A�++��@�++�AC�A/

'

�������� ���#��������������*�S��������������D�����������������D�����������

���������@�� ����������G�����������������D�K�D��������� ��������1��������������

��� ������� ����� ������,N-������������������*�S���������������� ������������

���������#��������#������'�������#�����N�����������������������!�� ���

������ ����������������� ���������!������������ �����������������������#

�������F������������������������������������������������"���������������N���

�����

(���������������F�����������#��� ����!�������!�������������������B����F���

�����*�S�#����D�*�S��� ������� �����������������"������ ����������������������

���#�������#���������!������ ������������������������������ ������ ���

Page 63: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

.�������=������7�����

;������������������AA� �������D������������������������D���G����

������" ������������� ����������!����������� ��#2!��D��������������������

�������,��� ��-������!���� ������� ����"�����1#�����������������������������������

������������ � ������ �������������������������������� ������������� #2!�

�����#��������#��������������� �������� �������������*����� ���������

�����������������������!��������E��"�� ������������,��"*���������������������

���!����������,��,�������������� ���������������������"���������������

(������������������AA#����������!����������" �������������#"!,,����������

���� ������������!�������9�#�������������������������������������������G

�������� F����� ������� ,�����������-������� ������������6G��+����

��������� �� ���� ���� ��������� ������ ����� �����#� � ����� ���� ����� ���������

��������������� �����������������������"����������� �����������������E����

���������F������������� ������������!��������������������� ���������������

�����#�������� ���������� �����: �������������� ��� ��������#� ����������#� ����������#

���������������������������������������F���!���������������������+���������

����������������� �����������������������������������������������������������

�����AA������������������������������������� ������������AA�*�������

�� ���������"��������� ���������,����3�������,����������������#���������

���������-�� ������������������������������AA� ����������������������

�������������������� �����#�������������,����3������� ���������������������!

��������'������������ ���������������6���������������B�����������������

�������������������,����3������������������������������������������������'�

����������������������������������������'��F��������������'������������

������������

������������������������������,����3�������� ���,����3���������#��������#�F������

�� ���������AA���� ������������9!,�#S,����3#���������������������������� *#����

���������������� ����������AA���������*������ ���� *�����'�� ������� �

F������������#����������������������������%�,����3������������������������

�������������������������,������������������������� ������-#������,����������

��������-�����G������,�������#��������#������������G����-#������������������������

������������������������������������������������������)��"�� ��#�����������

���������������������������������������������� ���� ��������������������

����������G��������#��������������#����� �������������� ���� *����������

��������������������������������������������������������������������������

��������������������������)����������#���� �����#�����������#��������������

������� ���������������������K���������"�������������������,����3������#����

���������� *�� ����������� ��������G��������������#�����������������

������������ ����3�,� ���������"����!-�

6��'���� �����������,����3@1#��#������������� �����������������������,����3

������������������������ ������B

Page 64: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$�6����+9?

�+��*��+25

����+9��@�"�#�(1������$���*$4+#-

����+9��A-

����+9��<2#�(��(*$��(���$���,4+#5-

�A�"�#)(������9((,�*$+4+#-

�(&��66��@�7��A�7��<�66�$+,�-

�@�7"��A�7"��<�7"�#()���$�0���'#-

�(&��66��@�66�$+,�-

8

9�����������������������+9���������������>�+��&,$������������������������������

����������������+9���������������������� ���*��+�������������������������������

����������+9�������������������������������������������,����������������������

������-����������������������������������"��� �������B

�(&��66��@�7��A�7��<�66�$+,�-

�����������������7� ����,��������������������������������+9������E������'�

����� ����� ����� ��-� �� ����������� ���� ����� ������ �� ��"��� ��� �� �����

�����B

�@�7"��A�7"��<�7"�#()���$�0���'#-

������������ ���� �������� �� �@� ������ ���� ��"�#� ���� ������ ����� ��������� ��

��� ������������������ ���'���"��������������B

�(1������$���*$

)(������9((,�*$+

�(��(*$��(���$���,

�(1������$���*$

)(������9((,�*$+

�(��(*$��(���$���,

()���$�0���'

�������������������������������������+9������������������F������'�����������

����������������������������������������������������������������������

S��F���������� �����������������������������������7/�"�����7"� ��������������

���� C������'� �� �� ���� ���� ��� ��"�� �"�� ��� ��� �� ����� ����� �� ���� ����

���#������������+9A;�00�

���������������������������������"����������������������������������������+9@;�00�

%��������� ������� �������������������������������������������� �����B

���������������������������"��������������������������������E����� ��������

Page 65: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$�6����+9?

�+��*��+25

����+9��@�"�#�(1������$���*$4+#-

����+9��A-

����+9��<2#�(��(*$��(���$���,4+#5-

�A�"�#)(������9((,�*$+4+#-

�@�7"��A�7"��<�7"�#()���$�0���'#-

�(&��66��@�66�$+,��66�$+,�-

�(&��66�#�(��������+9��$+9���#�66��@;�$+9��25�66�$+,�-

�(&��66�#�(����(+�()�����+9�#�66��@;)�+,2#*$+#5�66�$+,�-

�@;�$0���$2�@;)�+,2#*$+#5/�</� #0$(0�$#5-

�(&��66�$+,�-

�(&��66��@�66�$+,�-

8

������"������ ����������������E����#��������#�� ������������"������������������

����������������6������������ �������������� ���������"�������������+9A;�00B

�(1������$���*$

)(������9((,�*$+

�(��(*$��(���$���,

()���$�0���'

�(��������+9��$+9���=B

�(����(+�()�����+9�AC

�(1������$���*$

)(������9((,�0$(0�$

�(��(*$��(���$���,

()���$�0���'

����������������� �������������������������+9�������D���������������� ������

�������D�������������������������������� �����������������������)���

��������#��������������������������������� ������.�����3������

,&�������!6��������#�300/-��� �������������"����!#�8������#�,%�����!

(�����#�����-�

Page 66: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

.&������+������

��������������:�AA��� ��������������������" ������������������������ ���� ���

������� ��������� �������#� ������#� �� ��������� ������������������������

���������AA�� ������B

#��,�S#!,��+�7�*-�$*:��% �����#��,����������G�����������

�7�! �#S#!,��+�7�*-�$*:��% ����������������������� �����F���� �����

�E������������������= ��,������� ����3-

�*���*���*�S#!,��+�7�*-�$*:��% ���� ������������� ������

,�!��#S#!,��+�7�*-�$*:��% �" �������� �����#�� ������������� �����

�'������������������������� ����7�! �#S#!,�� ����������������� ��� ����

������!������� ����������������������������������� ��������*���*���*�S#!,����

������������������ ������ �����������E����������#��������������� ���

������� �������������� ���������������C���� ��'#��������� ����!�!�����

,��)9"*�D-����� ����!�!����,#2!��D-��4��������������������� �������������

�� ���� �� ���� ������� ���! ������� �� ���� ����� �������� =������� ����� �� ��

�� �������������������������������������,��� �������������AA�����!

�������������-�

����������� ����,�!��#S#!,�������������" �������������� �����������

���� ��� ���� ��� ���� �� ���� �� �������� �������� ��� �� ����������������

����������6��'���� ���#�,�!��#1#��#������������������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

�����*,)"�/

����!�G�H/

��)9"*�9�G�X1;HK<M@/

#�)��++�A���*� *��!�*��*,)"��A�++�!696K�++�*��"/

#�)��++�A�7�*#!,�����*� *��!�*��*,)"��A

++�!6,�!��#S#!,�+���-$9%6K�++�*��"/

�*,)"��G�!�6�,�!��#S#!,�+���-$9%�6�K/

#�)��++�A��)�#!�*���*,)"��A�++��*,)"��++�*��"/

'

��� ���'����� �������� ����������B

���*� *��!�*��*,)"��@I1;HK;

�7�*#!,�����*� *��!�*��*,)"��@I

��)�#!�*���*,)"��@I

��������,#��,�-������������������������������ ������������������#��,�S#!,�

�������� ��������������������� �����B

Page 67: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

#2!��D#�/

#��,��#2!��D�##�/

%���������������� �����������������#��������������������������������#��,�!

G��������� �����������!#��,�B

#��G�##�/

����"�� ��� ����#��,�1#�����������������������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

#2!��,�3TH.U�G�A��0��,��2*��� *A/

#��,��#2!��D##��G�,�3/

#�)��++�A���,�!����5,����3��,�A�++�##��++�*��"/

#2!��D#�/

#��G�#��,�S#!,�+#2!��D-$##�%/

#�)��++�A���5#��,���5,����3��,�A�++�#��++�*��"/

'

�������������##����#�������������������

S�������������������������"������ ��������������������#����������������

��!���������������������������������� ������ � ��#����������������������

���AA�������������������������#�����������������B��������� ���

�������������������������� ��������������'������#���� ������#��������������

���B�����������������������������" ����������������� ���������������������� ��#

����������������� �������'��������#������� ���� �����������G�������D

��)9"*!�!���� ��������� ����� ����� ����� ���,�!��#1#��� ����� ���� ������ ������

������������� �����������#���'��� ��������������������������� ��������

�� ���������+�����������������" �����#��������������!�������������, �������-

�������������� �����

Page 68: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������

� (������ �����������������������������������������������������������������������

������������������"����������������� ������������ ������������������� ��������

��� ����������������������� ������������������������� ������

� (������ ������������ ��������������!G�������������� ���������8C��>�C�������

��'��������L9�<#����� ����������������#�F�������������������������

�������������������

� (������ ������������ ���������������������#�������������������!G������������

���B� A�����3@A?A�����3<A�

� (������ ���������������������)9"*���������������������������$/3010�0�

����������������� �������� �����������������������������������4�� ��������������

(������������\

� (������ ��������������������#2!����������#����������������������������������F2F

���� F3F�� �� ���������� %��� ���� ��������� ������� ���� ��� ���� ���� ������ ��� �

���������(������������\

Page 69: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

! ����#�������� #�����

�����!������$�������������� ���� �&

2����! ���������������������������������������� �%

3����1���!�������������! ���������� ��

2����������4"���$����� ���������������� ��

������$������ �"�� ������������������������ 5&

�����������!!����!���� ������������������ 5�

�1��������� $����! ���������������������� 5.

2����� ��������! �������������������������� ��

�'����!�! ���������������������������������������� �(

Page 70: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

1�����������)�����������

.�����AA� �������������������������������������,���������#��"���������#

!��-��)��������������������,�����������������-��������#������ ������������

�������%��������������������������� ����AA� ��������������������������

����������#������������������.���� ��������������,��7�����������-�������

���������� �����"�������� 1#���� ������������������� ���� ������������ ����

�������������������� ���������AA� �����6�������� ���������� �����

����������� ��� ��������'�������������D���������������"�� �� !��

����������!�������� ����D������������������������������� �������������������

�AA� ���������� �������� ��� �������������������������������#���'�����

����� �� ���� ���� ������������� �� ��"� ����� ����#� ��� � ���� �� ����

�� ��"���#�������������������������� �������� ������������,E*"�@1#��B

4D ���3�! ���"*�$��!�,"!�����)���%�,E*"�@1#�� �D4

(��#")�*�+��,��*! -

(��#")�*� A,E*"2*!�12A

�����#88�)�#@$%

&

,��88#�)��++�A���#"!,,��)�#@$%A�++�,��88*��"/

88�)�#@$%/

'

���� !��$%

&

#�#S��,�/

#S��,�1�)�#@$%/

�)�#<$%/

�)�#;$%/

'

������)�#@$%

&

,��88#�)��++�A���3"�9!"��)�#@$%A�++�,��88*��"/

'

���������������������������,E*"�<1#��B

4D ���3�! ���"*�$��!�,"!�����)���%�,E*"�<1#�� D4

(��#")�*�+��,��*! -

(��#")�*� A,E*"2*!�12A

������)�#<$%

&

,��88#�)��++�A���3"�9!"��)�#<$%A�++�,��88*��"/

'

������)�#;$%

&

,��88#�)��++�A���3"�9!"��)�#;$%A�++�,��88*��"/

'

Page 71: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

S��������������������������������������������������� ���������� ������

�"��������� !����������#����������������#������������������������ ���

�������%��� ������������ ����� ���� ���#� ���F���� �� ���� ���������� �� �����#

����� ���� ���� ������ �� ���)�������������������������B���� ���'��������� �

��������������������������)������� ��� ������������������������������

�����������������������������,E*"2*!�12B

#"!,,�#

&

����!�*8

�)9"�#8

������)�#@$%/ 44�������7�*����#88�)�#@$%

'/

������)�#@$%/ 44�������7�*����3"�9!"��)�#@$%

������)�#<$%/ 44�������7�*����3"�9!"��)�#<$%

������)�#;$%/ 44�������7�*����3"�9!"��)�#;$%

*��'�����������������������������������������������������������������##���������

���������� ��� �����������������������)�#@�� �������������������������

����������� �� ���� ����������� ��������� �)�#@#� �)�#<� ���� �)�#;��,E*"2*!�12� ��

(��#")�*��������������� ���������#�,E*"�@1#�������,E*"�<1#��#������������ ���

���������������������������

��������,E*"�<1#������������������������������������������������)�#@������)�#<�

,E*"�@1#�����������������������������������������#����������� !�������������#

�)�#@#���������� ��������������#B

�����#88�)�#@$%

&

,��88#�)��++�A���#"!,,��)�#@$%A�++�,��88*��"/

88�)�#@$%/

'

�������������� ����������������������������������)�#@�������������������������#�

%������������� ����#����� ���� 88����������������� ���������� ���E���

� �������������� ����������������������������#�������������������� �������������

#��&��������#����������������������B

������)�#@$%

&

,��88#�)��++�A���3"�9!"��)�#@$%A�++�,��88*��"/

'

����������������������� �������������������������������������� ��������

���������88� ����� ����������#88�)�#@�������� !������������������B

#S��,�1�)�#@$%/

7���"��������������������������������������������������#�� ���������" ������������

�������������)�#@���������������������������������������������������#�������

Page 72: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������)�#@�� ������������������� !��#�������������������� ��������"B

�)�#@$%/

�������#��������#88�)�#@#��������������������������������������������)�#@�� ���'�

�������������������������B

88�)�#@$%/

���������������� ���������� ���������������� ��������C������'������� �

������������#����������������,�����-��� �����������������������������������

%�������� ���B��������� ������ �����������������������������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���,E*"�@1#�������,E*"�<1#��#������! *,�!#*������������������ �������������������

����� ��� ����� ��� �" �������� � ������ ���� �� �� �� ���� #�)�� �F���� ���� *��"

���� ���������������������������B

,��88#�)��++�A���#"!,,��)�#@$%A�++�,��88*��"/

��� ���"�,��BB��������������������������������F�������������������*����'�

�� �������������������G�����������������������F������������#��������!�!

����� ����������

),��3��! *,�!#*�,��/

����������������������������� ���#���������! *,�!#*�� �������#����������

���� ��� ���� �������� ,�����-� �! *,�!#*� ����� ��� �� ����� ��� �����AA� ������

��������������������������! *,�!#*#������������������������#��������������

�F����������E������������������G���������� ��������������������,��88#�)��

%���������������������"����������������������B

(��#")�*�+��,��*! -

(��#")�*� A,E*"2*!�12A

%��������������AA� ���������������������������!������ ����������������H�, � #

��������9���%������������-���������� ������#�������� �������������

�AA� � ������ �����������������������������������������������������������

����������������������,E*"�@1#�������,E*"�<1#��#��������������������������

�� ������L����������������������������������,��*! ����������� � ������

������������������������������!���������������,����������������9�*L4.-����

�����������,E*"2*!�12#�������������G�����������������'��������������������

��������������������������������������������(����,E*"2*!�12�������������

����������������������������������#������ �����������(��#")�*�+,E*"2*!�12-

�����'�����

*�����#���������12������"���,E*"2*!�������������,��*! \� ����������������������

���������������������������'�������������������"��������������������

�����L�����12�������������������

Page 73: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

5��������

%����������������G���������AA������"���������������� ��������� ���

�������������������.�����������'������������������������� ���#��������������

���� ���������������S������������� ���������������� ��� �#��������!

�����)� ���� � ����� �����������#��'����������#������ ������#���������� ��

�������� ���������� ������������#����������������������������������)�#@B

�����#88�)�#@$%&'

����� �)�#@$%&'

����������������������� ��������������##����������������������%�������������

�����������������#���������������� ������������ ����������G�����#������������

��������������

������&��

%� ��� ���������������������������� �����������"��������������� �����

���������������������������������������������� ��� ���%���������������!��

����������������������������������������������������������������(�������

����������������������������� ����������������� ��� �#������� �������������

���������������������������������������

%���������������������������������������#������������������������������

���������������������������� ������������ ��� �B

������0*�$���?����%/ 44��)�#�����������7�*

S���������������������������� ��������������������������������������� ��

������������ ��������������� ��� ���"�������������������������������������

������������������������������

(���������������������������������#���'��������������������������

��������������,����,E*"2*!�12�������� ������������-��������������������������

��� ��������� �����������(��#")�*�������������������������� ���������#

�������������������" ���������������������� ��� ����������� ���������

����

%�����������������������������������!��#��������������������������������

����#��������������������������#������������ ����������� ��������C�������'

����C ������'����������������������������E�������������������#������������

�������������������������� ���� �������������� ��������� ����� ������������#

������������� ��������������� ����������������������������������������

��������%����������C�������'�������������"����������������#����������

��������������������������������������C ������'�

�*��������������������������������������B

�����*,)"�?��) ?��/

�*,)"��G���0*�$�) ?��%/ 44��)�#�����#!""

Page 74: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������������������������������������B

������0*�$�����) ?������% 44��)�#�����2*!�*�

������������#���������� ���� ��������������'��������� ��� ����������������������

���������� ����������������� ��������������� ���*,)"�� ������ �������� ���� ��� ���

��������������� ����������������0*�#�����������������#����������������#�������

������������������������������������������������������ ���3�, ����23-��������

������������#���������������) ����������� ���������� ����������������������

�����������������������������0*��

������������������������������������������������������ ������ ������������

�����������S���������� ���� ���������������� ��� ���� ���������� ������� ���

��������������������������������������������������������������������'������

�� ��������������

(�����������������������#�������������������������������������������������

������������ ���� ���� ���� ���������������� ��� �����������(��������� ��

���������������������������������������������������������������������#����

������������� ���������������������� ����������������������������������

�AA�������������������������������������������������������������������

�����������������������������������������#���������������������AA��" �������

� ������������������� ��� ����������������������������������� ���������

�������������� ���������������B

������0*�$%/ 44�������7�*

�*,)"��G���0*�$%/ 44�#!""

������0*�$% 44�2*!�*�

���������������� �����" �������������������0*������������������ ���������������

���������������������������#������� ����� ��������

:�)�������

%� �������'�� ���������� ��� ���� ������ ������� ��� ���� ���� �� ���� �������� ,�

�� �������������-��6��'������������������������������0*�����������������

���������������B

������0*�$�����) ?������% 44��)�#�����2*!�*�

& 44��)�#�����9��7

�����*,)"�/

44�#!"#)"!�*��) �����2*���0*���?�!,,�3������*,)"�

�*�)��$�*,)"�%/

'

��������������������������������������������������������������������������������

��������������6����������������"�� ��� ���#���0*�1#��#��������������������

������������������0*���������B

Page 75: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

D.........................................................................

�.

�.������30(1$�;�003�E������(9��*��(�����$�+&*F$����(����0$��)�$,�0(1$�/

�.����������������������&��+9���30(1$�3�)&+���(+;

�.

� ........................................................................D

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

�(+9�0(1$�2�+�/��+�5-

�+��*��+25

���������+��+&*/�+-

���������(+9��$�&��-

��������(&��66�#�+�$��+&*F$���+,�$G0(+$+�H�#-

����������+�??�+&*�??�+-

���������$�&���"�0(1$�2+&*/�+5-

���������(&��66�+&*�66�#��(���$�0(1$��#

66�+�66�#����#�66��$�&���66�$+,�-

8

�(+9�0(1$�2�+��*�+�����/��+��$G0(+$+�5

���������(+9��$�&���"�2�(+95*�+�����-

��������1���$�2$G0(+$+��?�@5

���������

�����������������$�&���"��$�&���.�*�+�����-

����������������$G0(+$+�::-

��������8

���������$�&�+2�$�&��5-

8

6��#��������������+&*�����+����� ������������������������������ �������

*�+������ ����$G0(+$+�� ���0(1$���*�+������ ����$G0(+$+�� ��������������� ���

�������'����������������������������������������$�&����(����*�+��������������

������������ ���$G0(+$+�#������������������" ������������������������$�&��

������ �������������������������������������9���������#���������$G0(+$+����

� ������������������� ���0(1$�#� ������������ ������� �������������#�+#� ��

*��+����������������������#���������������(�������������� ���#�������� ���

����������������B

�+�$��+&*F$���+,�$G0(+$+�H����

A��(���$�0(1$�������<A

����������� ��������������� � ����� ���������� ������������������������ ��������

��+�

Page 76: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

<������+���������������

%�������������������������������������������������������������B��������

������������� ���������%�� ��� �����"�� ����� ������0*�� �������#� ���� �*�)��

����������������������������������������������������������������������������

���������� �*�)��/� $������� �������������� ������-� ��� �� �������#� ���� ������ ��

���������������������������������������������������������������������9

�������������������������������������������������������������������������

�*�)�����������������������������������������������������������������������

�������������� � ������������������B

�*�)��������/

�*�)��$� S�%/

�*�)����*,)"�/

��� �������������������������������" ���������������� ������

�����������������*�)�����������������������������������������������������

�� ���������%������������ ���������������������������AA����� �����%�����

������������ �������������������������,� ���������������� ���������������

������������-�������������������!�#����

�AA��� ������������������������������!������������ ������������������������

������������������������������ ����������������������������������������

����������������S��������������������������������������������������"�

�������

6����������� ����"�� ��#�!����,@1#��#��� ���������������� ��������������

�����#������������������������� ��������������������*�)������������B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F!����,@1#��F�Z�����3�! ��2!��#!"",�!��)�#��������!����0�

�D�����������������������) 9*�,�02�#2�,*��,�9!#E��2*��*,)"��),��3

�D����������������������F�*�)��F1

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

�"�!��!��S��,$���?��"�!�%/������44�������7�*

���� !��$%

&

������������:�G�@L/

���������"�!��7�G�;1@X<?�,) /

��������#�)��++�A�) 9*�,���8�A�++�:�++�A�A�++�7�++�*��"/

Page 77: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������&*�"��,,I+(�2G/�'5-

���������(&��66�#&*�()�#�66�G�66�#��+,�#�66�'�66�#����#�66��&*�66�$+,�-

8

)�(����,,I+(�2�+���/�)�(���F5

���������$�&�+2�7F5-

8

�������� �� �������� �� ���� ��� ������� ������� �� ������#� ���� ��� �����������

����������� �����������! �����������������

)���#��������$�&�+#���������������������,,I+(����������������#������������� �

)�(��#��������������! �������������&*����*��+���,,I+(������� ������������������

����������������G�����'�� �������������������������������*��+�� ��������������

� ���������� ��������������F�����������������,,I+(���S����'������������

���������������������������������������������������������� ��������������

��������������� �����������������G�����'E�������������������������������

�����������

���*��+#�G�����������������������������'�������������! ����������� �������������

� ������������F�����,,I+(�����������,������������-�������������������������� ��

��'�������� ����� ���� �� ����� ������� ������������������� ����������� ���

����E��������������#������� �������������� ������������� ��������������

D� ��� ������������ ���� ������� ��������� ����� �" ������� ��� ��������� ���

�������� ��� ������ ������ ���� ��'�� ���� ���������� ����� ��������� ���

����������������������������������� ���������(�������������� ���#���

��������B

�&*F$����+H�@B�<;@=A

&*�()�@B��+,�<;@=A����@J;@=A

Page 78: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

5������������#&���)������

S�'�������������������������������9����'�������������������������������

������������������������������� ������������������� �������������������������

����� ������������� ��������������������� ������������ ������������ ���� �� ���

�������������������������������������������������������������������������

����������������������������� ��������,��� ��������� ��������������-���

���������������������������������

�����#���������������������������������������������������������������������

�������#��������������������������� ��������������������������������������

���������������������������������������������������������������������

����#&���)��������������������

��� ����!����,@1#����������������������� ��������������������������������

!��S��,������� ������������������ !����6�����������G��������� ���#�!����,<1#��#

��������������������� �������������������������������������������������������

���������������������������� �������!��S��,B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F!����,<1#��F�Z�����3�! ��2!��#!"",�!��)�#��������!����0�

�D�����������������������) 9*�,�02�#2�,*��,�9!#E��2*��*,)"��),��3

�D���������������������������*�,�!,��!�! *�*�,

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

�����!��S��,$���?��"�!��D%/������44�������7�*

���� !��$%

&

������������:�G�@L/

���������"�!��7�G�;1@X</

���������"�!��V�G�7/

��������#�)��++�A�) 9*�,���8�A�++�:�++�A�A�++�7�++�*��"/

��������!��S��,$:?�N7%/

��������#�)��++�A�) ����A�++�:�++�A�!���A�++�V�++�A��,�A�++�7�++�*��"/

'

�����!��S��,$����!?��"�!��D9%

&

��������D9�G�D9�6�!/

���������*�)��/

'

Page 79: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

%������������#������� ����7�����9���������������� ����"�!�#������� ��������"�!��

������������������� �������!��S��,�����������F����7#������������������

,����������������������������������-�7�� ���������� ������9������������������

7#���������������������7��%������������F������#�����������#����� �����9

���!��S��,B

D9�G�D9�6�!/

������������������ �����9#����������F������������9���� ������#�����������������

�������������7�� �����������7���� �������������������#�)��������������� !��

���������������������������!��S��,�� ��� ���'����� �������� ��������������

����������!����,@1#���

���&� �������

�������������������������������������������F������ �����������������������#

���������������������� �����,��������#��������-�������������F�����������

�����������#���������������������������������� ���������������������������

����� �� ���� ���'�� ��������� ��� ������ ����#� ��� ��� ��������� �������� ��� ��

�������������������������#������������������������������������F����������� ����

,�������'���������-������������������������������������������������������������#

����������� ������������������������������������#����������������������

�����������������������������������������������������������

*��'������������"�� ��� ���#�!��!7!�31#��#���������������#�3*�S�!�!#���

������������������������������� ��� � �������������������������� ������

����������������� ������� ���������������������������

4D

�D !��!7!�31#��

�D4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

�����3*�S�!�!$#2!��TU?�#2!��TU?�#2!��TU%/�44�������7�*

���� !��$%

&

#2!����THU? THU?77THU/

3*�S�!�!$��? ?77%/

#�)��++�AK!7�A�++����++�A�����2�A

++� �++�A��*!��A�++�77�++�*��"/

'

Page 80: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

L(�,�9$�I,���2�����,�'�!/������*(+���!/������'$���!5

�(&��66�#�+�$��,�'H�#-

��+�??�,�'-

�(&��66�#�+�$��*(+��H�#-

��+�??�*(+��-

�(&��66�#�+�$��'$��H�#-

��+�??�'$��-

8

����������������������������������������� ������������������������������

��������������9$�I,����� �������������������������������������9$�I,����������

������������������������������������������������������#������������������

������ ��#����������������������������������������������������*��+�� ������'�

�� ��:�� �����G���������������� �������,�� �������������-B

�+�$��,�'H���

�+�$��*(+��H���

�+�$��'$��H�����

��'�AJ�(+��� A��$���@CJB

������)������� �&��

)����������#������� ���������������������#��������,,+(�A;�00�����#����

���������������� ���������������������������������������������������

������������������������������������������������������������������%������

���� ����������������������������������������������������������������������#

�������������������������� ����������������� ������������������������������

���������� �#���������������������� ���3������������������������������6��

��� �� ���#� �,,+(�<;�00#� ������ ���� ���� ����� ��� �,,+(�A;�00#� ���� ����

������������������� �����B

D......................................................................

�.

�.������3�,,+(�<;�003�E����(9��*��������������)&+���(+��(��,,��1(�+&*F$���1����

�.�����������������������$+,��F��M���$��$�&���&��+9��77��$)$�$+�$�����0���*$�$��

�.

� .....................................................................D

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

L(�,��,,I+(�2�+�/�)�(��N5-������DD�0�(�(�'0$

�+��*��+25

Page 81: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������+��G�"�@B-

��������)�(���'�"�<;@=A-

��������)�(���O�"�'-

���������(&��66�#�&*F$����+H�#�66�G�66�#�#�66�'�66�$+,�-

���������,,I+(�2G/�'5-

���������(&��66�#&*�()�#�66�G�66�#��+,�#�66�O�66�#����#�66�'�66�$+,�-

8

L(�,��,,I+(�2�+���/�)�(���NF5

��������F�"�F�7��-

���������$�&�+-

8

����,,I+(���������� ��� �B

L(�,��,,I+(�2�+�/�)�(��N5-������DD�0�(�(�'0$

�� ����������������� ����� �������������� �����������������������)�(��N

,����������)�(��-����)�(���.�, �������)�(��-�� �����������������������������

�,,I+(�������������������������#������������������������������������������

���� �������������������������,,I+(���������������� ����������������!�����

������������ ���������������������������� �������+���� � ��� ��������

��� ��������������������������� ��#���� ������ �����#������� ��������

�AA���������������������������

Page 82: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��������������������

.���� �������� ���� �� ������� ������ ��� ������ ������ ���������� ���� �����

,����������-������'�����,��������-�����������������������������������������������

������������������������������������������������

���� ��� ��� ������ �������#�������� ���� ������� ����AA� ������� ������

��������#� ���� ����������#� ��������� ������ ������ ���� �"�������� ��

�� ������������������������������� ���������

���������������������������������������#���'����������������#����������������������

#������� ���������������������������������������������������"����������

����������"�������������������������'�����������������#����������#����������

���������������

���������������#���������������������������������������,����'�����#�������

#�����-������������������������������"���������������������"������������

�����%���"���������������������� �������������������������������������

����

%��������������������������������������G������������������������,�!��#������

������������������������������������������E���������"�����������������������

���'���"�������

����������������������� ���������������������������� �������" ���������

�������'�������������B

!)��

�*3�,�*�

,�!��#

*:�*��

�������� ��������� �����)����

)��������������������������������������#�������������������������������������

%����������������������������������������������������������������#��!)��#

������F�����

���������� ���������� � ���� �� ������ ��������� ��� ��������� ����� ����� ���

�������������������������������� ����������������� ���"������������������

&�������������#����������������������������������������������������������

�����������������������������������������"��������������������������������

��������� �������������������

����:/

�����������������������

!)�������:/

�����������������������������������������G����������6����#�!)�����������������

������������� �����������������������" �����������������,�����������-

Page 83: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

S��������������������������������������������� ��������*3�,�*��� ���������������

���!)��� �������������"�� �� ����� ������ ���#���������� ���� �*3�,�*��� ������#

����� �������������� ���������������������������!� ������������������#��������

�������������

������ ������� ����

S�������������������������������������������������� �����������������������������

������������������������� ���"������������������,�!��#��%�������������������

��������������������� ������ ������� ����#� ����� ����� ��� ���� ��������

��������!)���

%����������������,������������������������-����������������������������������"��

�����������������%���������������#���������������������������������������

������� ����D������������ ���������������������������������D������������

��������������������������"����������"������������������������������%���������������

������������������������������������� ����������������������������� ������

�������� �����������������������#��������������������������������������

����������D�����������������������������������������������������#�������%�

�"����������������#�����������#����������������������

���������������������������" �������������������#��������������������K������� ��������#

������ ����������������������6����������"�� ��������������������������������

�������������������������������������"�����������������B

����� �)�S���!"$����%

&

,�!��#��������!"�G�@/

���!"�G����!"�6�@/

'

%���� �����������#������� �������������� ���������!"����������������������@�

���� ����������!�����#��������� ����� ���� �������� �����������.���� ����� ���

������������"������#����������������!"���������������������� �����������������

���������������������#����������������!"����2�

.��� ������� �����)���

��������������������� ����������*:�*����%���"��������������������������������

���� �������� ��� ���� ���� ����� ��������� ��� ��� ��������� ���� �������������� ��

��������������������������������� ������������������� ���������������� ���

��������������������*:�*���

6��������������� ����� ����������������������������*:�*�����������������������

������� �������� ��������������������������������� ��� ��������� ��� ��������

*:�*��@1#�������*:�*��<1#��B

Page 84: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

DD $G�$�+@;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

L(�,�)&+�@25- DD�0�(�(�'0$

�+��G�"��- DD�9�(F���L����F�$

�+��*��+25

�(&��66�#P��&$�()�G���H�#�66�G�66$+,�-

G�"�J-

)&+�@25-

�(&��66�#P��&$�()�G���H�#�66�G�66$+,�-

8

DD $G�$�+A;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

$G�$�+��+��G- DD�$G�$�+����$)$�$+�$��(�9�(F���L����F�$

L(�,�)&+�@25

�(&��66�#P��&$�()�G���H�#�66�G�66$+,�-

G�"�C-

8

���������������������*��+��������������� �����������������������������������

��������G#����������������������������������J�� ���#������������� )&+�@�,������

������ ��������-�������������� ����������������������������������G������

������������*��+#������������������������G����� �����)������#����������������

������������������������������������ ���������E���G����������� �����������

����������������������������#������ ������������������������������$G�$�+

�����������������$G�$�+A;�00������� ������ �������� ��������� �����������B

P��&$�()�G���H��

P��&$�()�G���H�J

P��&$�()�G���H�C

)�������� ��� ��� ��������#� ���� ����� ��� �"������ �F����B� ����� ��� ����������

����������������� ����� ���������������������������������������������

����������� ������ ���������#������������������� �������������������%��

������F������������������������������������������ ��������������������"�����

����������������� ������������������������� �����������������������������������

������������B�������'������������AA������������������������������

Page 85: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������������� ��������

%��������������������� ��#������������������������ �B�������,����-#������ ���

������������AA�������������������� ��B���������,���������������������3���

����������,��������� ���5-E����������,���������&'�����-�6����������"�� ��

���#������ ��� ���� �������������3�@1#����������3�<1#��#� ����� ����������

������� ������������#������ ���#����������� ����� �� ���)���#��������� ����#

���32*!�12#�������������������������#������ ��������������������������B

�! *,�!#*��,@

&

������)�#@$%/

'

�! *,�!#*��,<

&

������)�#@$%/

'

#"!,,�#

&

����!�*8

����:/

�)9"�#8

,�!��#�����7/

������)�#@$%/

'/

������)�#@$%/ 44�������7�*����3"�9!"��)�#@$%

������)�#<$%/ 44�������7�*����3"�9!"��)�#<$%

������)�#;$%/ 44�������7�*����3"�9!"��)�#;$%

S����������������������������,G����������������O-������������������������

�)�#@�� ����������������������������� ������,@������,<#�����������������#����

�������������� ��� ��� ���������������������)�#@�����������������������

�������������������� �������������������������������������G�����

4D

�D ���3�! ���"*�$��!�,"!�����)���%����3�@1#��

�D4

(��#")�*�+��,��*! -

(��#")�*� A���32*!�12A

����:�G�;./ 44�3"�9!"��!��!9"*

����#887�G�H./ 44�#"!,,�,�!��#��!��!9"*

�����#88�)�#@$%

Page 86: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

G�"�A - DD�����9+��(������:�+���+�$�L����F�$

��,HH�(&��66�#�+�������)&+�@25#�66���,HH$+,�-

��,HH�(&��66�#��(F���G����#�66�HHG�66�#�������G����#�66��HHG

66�#��������������'����#�66�'�66���,HH$+,�-

8

�+��*��+25

���I�+��-

�I�+��;)&+�@25- DD������������)&+�@

)&+�@25- DD������9�(F���)&+�@

)&+�A25-

�I�+��;)&+�@25-

)&+�<25-

)&+�<25-

+�@HH)&+�@25- DD������)&+�@��+�)�����+�*$�0��$

+�AHH)&+�@25- DD������)&+�A��+��$�(+,�+�*$�0��$

8

L(�,�)&+�@25

��,HH�(&��66�#�+�9�(F���)&+�@25#�66���,HH$+,�-

8

L(�,�+�@HH)&+�@25

��,HH�(&��66�#�+�+�@HH)&+�@25#�66���,HH$+,�-

8

����������������� ��������#�0�(9)A;�00B

D.

�. ��(9��*�)��$�2���+�����(+�&+��5�0�(9)A;�00

�.D

>�+��&,$�6�(���$�*?

>�+��&,$� #0�(9�$�,;�#

$G�$�+��+��G- DD��$)$�$+�$��(�9�(F���L����F�$

L(�,�)&+�A25

�+��G�"�@ - DD��(����2)&+�A5�L����F�$

��,HH�(&��66�#�+�9�(F���)&+�A25#�66���,HH$+,�-

HHG�"�<@- DD�����9+��(�9�(F���L����F�$

�HH'�"��@- DD�����9+��(��������������L����F�$

8

Page 87: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

L(�,�)&+�<25

��������+��'�"�B -

��,HH�(&��66�#�+�9�(F���)&+�<25#�66���,HH$+,�-

��,HH�(&��66�#P��&$�()��(��������������#�66�'�66���,HH$+,�-

'�"�� -

8

L(�,�+�AHH)&+�@25

��,HH�(&��66�#�+�+�AHH)&+�@25#�66���,HH$+,�-

8

���� ��������������� ��"��������������������������������� ����������� ������

����������� �������������4������������������E���'����������������������

������������#��� ��"#��AA� �����

%���������������������������������)&+�@#���������������������������������

��������������G�� ��������������������������������������������������������������

G��������� ���0�(9)@;�00�� ����������������������������������,��������������

����������-�� ������������������,��������������������-�������������G#����������

���������������������)&+�A���� ���������0�(9)A;�00�

���*��+���������������������������������������������������������������������

)&+�@���������������������HHG������ ����������������������������������G�

���������������!���������������HH'��������������������������� �����������*��+

�������B

�+���HH'�"�� - DD��������������L����F�$

���������������������������������C��������'����������)&+�A#�����������*��+�

������������������������������G�����������������������HH'��(����������������

*��+#���HH)&+�@�������������������� ���������������������������������������������

���������� �����������������)&+�<�����������������������������������������

������������,��)&+�<-����������������'��)������#��������������� ����#�+�@�����+�A

��������������������������������������)&+�A#������������������������

�� �#����������������������������������

��� ��������� ���������������������������������������!�������G�����B

F��<A�0�(9)@;�00�0�(9)A;�00

����������������������

0�(9)@

������� �������� ����������B

�+�������)&+�@25

��(F���G����< �������G����A ��������������'�����

Page 88: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���3"�9!"��)�#@$%

���3"�9!"��)�#<$%

���#"!,,��)�#@$%

�"�9!"�:��,�;@��"!,,�:��,�<.��"!,,�,�!��#�7��,�H@

���3"�9!"��)�#;$%

>!")*����"�#!"�,�!��#��,�L.

���3"�9!"��)�#;$%

>!")*����"�#!"�,�!��#��,�H.

����,@88�)�#@$%

����,<88�)�#@$%

:��������� +�� ��)�������

��������C���������'�����C���������'��������������������������#�����������

�����������AA#������������������������ ������%����������������������������

�������� ���������������������������������������������������������� ����

%��������������������������������� �������������������4���������������

��������������������������� ��� ��#����������������������*:�*���� ������������

%��������������������������F���#����F�������������������������.�������������

������������������������."�� ��������������������,�������������-����

����������� ���������� ��� �E�����������������E����������������������������

�������#���� ����������� ������*:�*�������������

&������������������������������������������������#�������������������

������������������������������� ������#�����������������#��� ����������������������

�������%�����������������������������������������������������������������������

����������������� ��������������������� ����� ��������������

Page 89: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

1+�������� )��������

�AA����������������������������S�������������������������������������

�����������������������������������#����������������������������������������

������������������������ ����� ������������������������������������������

����������������������������������������� ��� ���

)����������������������������"�������B�����������������������������������

������� ��������������������������������������������������������

������������ ������������ ��#����"�� ��#�������������������� ����

�����������#�������������������������� �� �������)9"*��S������������

������������������#�����������������������#������������������������������

�������� �����������������������������������������������

44��*�"�!�*���)�#�����������7�*,

��������S�)�#$���?����%/

��)9"*�����S�)�#$���?���)9"*%/

��)9"*�����S�)�#$��)9"*?� ���%/

��)9"*�����S�)�#$��)9"*?���)9"*%/

����������"���������������������������E���������������������� ����������������

���������� ��������������������� ����AA��� ��������������� �!

����������������������� ������������������"��������������������������������B

��)9"*�����/

]

�����G�����S�)�#$@H?�<1K@I<I@I<I%/

������������������������������������������������ ��� ��������������

�����>� �+�������� )��������

6��'���� ���#�����"@1#��#����������������������������������������G������

�������

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

44��)�#�����F,R�S�)�#F���*�"�!�*�

�"�!� ,R�S�)�#$�"�!�%/

��)9"* ,R�S�)�#$��)9"*%/

��)9"* ,R�S�)�#$�"�!�?� �"�!�%/

���� !��$%

&

�"�!�����G�@1K;<.H.I/

��)9"*���G�<1<;X.XI/

#�)��++�A�R)!�*����A�++���++�A��,8�A�++�,R�S�)�#$�%�++�*��"/

#�)��++�A�R)!�*����A�++���++�A��,8�A ++�,R�S�)�#$�%�++�*��"/

#�)��++���++�A� )"���"�*��97���,*"���,�A�++�,R�S�)�#$�?��%�++�*��"/

'

Page 90: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�"�!��,R�S�)�#$�"�!���%

&

�*�)��$��D��%/

'

��)9"*�,R�S�)�#$��)9"*��%

&

�*�)��$��D��%/

'

��)9"*�,R�S�)�#$�"�!���@?��"�!���<%

&

�*�)��$�@�D��<%/

'

������������ ����������� ������B

�R)!�*����@1K;<.H��,8�;

�R)!�*����<1<;X.K��,8�H

@1K;<.H� )"���"�*��97���,*"���,�;

���� ��� ����� ���������� �� ,R�S�)�##� ���� ����� ��������� �������� ������� ��

�� ����������������� ��������������� ���������������������������������

�������������� ���������������� ���������������������������������" ���������

������"���������������������������������������

◆ ����� �������������������������� �������������������������������������

�������� ����������

◆ �����������������������������������������������������������������

◆ (�������������������������� �����������������������������������!

� ������ ������� ������ ��� ���� �������� ���������� ���� ��� ������� ���

��������� �����

L����� ��� ����������������#���������������������������������������������

���#������������� ���������B

�"�!�� ,R�S�)�#$�"�!�%/

��)9"*� ,R�S�)�#$�"�!�%/

����� ���� ������ ���� ��������,R�S�)�#������������������������ �����������

�����#�������������������������������� ���

5�������� ���� ����������

(������������������������������#�������������� �������������B

◆ %��������������������������������������������� ��������������������������

������������������������

◆ +���� ��#���������#�������������������������� ���#������������������

���������������������%��� ����������������

◆ 9���������������������������� ������������ ����������������

Page 91: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���� ���#�����"<1#��#����������������������������9������������������������

�������� �������������������" ������������

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

�"�!��,R�S�)�#$�"�!�%/

��)9"*� ,R�S�)�#$��)9"*%/

���� !��$%

&

�"�!�����G�@1K;<.H.I/

��)9"*���G�<1<;X.XI/

���������G�H/

�������D���G�N�/

#�)��++�A�R)!�*����A�++���++�A��,8�A

++�,R�S�)�#$�%�++�*��"/

#�)��++�A�R)!�*����A�++���++�A��,8�A

++�,R�S�)�#$�%�++�*��"/

#�)��++�A�R)!�*����A�++���++�A��,8�A

++�,R�S�)�#$�%�++�*��"/

#�)��++�A�R)!�*����A�++����++�A��,8�A

++�,R�S�)�#$��%�++�*��"/

'

�"�!��,R�S�)�#$�"�!���%

&

�*�)��$��D��%/

'

��)9"*�,R�S�)�#$��)9"*��%

&

�*�)��$��D��%/

'

�����������������������,R�S�)�#���������)9"*������"�!���������������������!

��������������

����������������������������������������������� �������������������������

�"�!�����)9"*��� ��������������������������������� ��������B������� ���

�������������������������������������������������� ���������G������������

�������������������������������������������������������������������� ����

��������� ��������������� ���������

(��������������������������#���������������������������������� ���

��������������������������������������������������,����������-���������������

�������������������������������������"���#������AA��� �������������������

����������������������������������#�������'�����������������������������

Page 92: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

5�������� �������

�AA� ������ �������� ��� ������ �� ��������������������� ���������� ������

�������������������������� ���S���������������������� �������� ���"���

�� ����������������������� ���� �* �"!�*������� ���������� �� ����� �����

������������������������� ����������� ����� � ����������������� �!����

����������������������������������������������

�AA��������������� ������������� ����������������������#� ������ ���

����������#��������������� ������������������������������� ���������������

������������� ��������������������������������%�����"�� ���������������#

������� ��#������������������������������������������ ������������������������

����������������������������� ��������������������������������)9"*�#�����

�����������������������������������������������������������������������

���������������

�� ������ ����������������������� �� ����� ���������������������� ���

���������"�� ��� ���B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

44����* �"!�*��*#"!�!����

�* �"!�*+#"!,,��) -

�) � ��$�) ��@?��) ��<%/

���� !��$%

&

�����@?��</

��)9"*��@?��</

#�)��++�A���*���0�����*3*�,8�A/

#���--��@�--��</

#�)��++�A ��� ) ��,8�A�++� ��$�@?��<%�++�*��"/

#�)��++�A���*���0����)9"*,8�A/

#���--��@�--��</

#�)��++�A ��� ) ��,8�A�++� ��$�@?��<%�++�*��"/

'

44����* �"!�*��*��������

�* �"!�*+#"!,,��) -

�) � ��$�) ��@?��) ��<%

&

���$�@�+��<%

�*�)���$�@%/

�*�)���$�<%/

'

Page 93: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�������� ���#������������������������ �����������" ���������� �� ������#

� ��������������� ����!������) �� �������������������������������������

�����* �"!�*��������������������������� ��B

��$�@?��<%

����������������������������� ���������������� ���� ������������������������

�� ������� ���������� ��� ��������� ��� ����� �������� ���� ���� �� �� �� ���� ��

��������#����#������������������� ����������) ������� �������������������

����������������� ��B

��$�@?��<%

����������� ������������������������������ ������������������)9"*��������������

�) � ���� �� ���� ��� ������ �������! ���� �������� ��� ���'�� �� ��:

�� �����G�������������B

���*���0�����*3*�,8�;�L

��� ) ��,8�;

���*���0����)9"*,8�;1H�L1H

��� ) ��,8�;1H

S��������������������������������� ����������������������� �������������

������� ���� ���������#� ��� ����� ������������ ������������������ ���� �������� ��

�������������������������� ����� ������������������������������������������

������������������ ����������������������������B

��$�@?��<%/

���������������� ������������������������������������������ �� ��������)

�������� ����

Page 94: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������

� (������ ��������#�������� !����������#�� ���������������������������)�S���!"

������������������������������ ������������ �����������������������)�S���!"

���������� ��#�* *����(������ ���� �������#����� ��#�* *��� ������������������

��� �����������������'��������� ���������������������������������������������

�����������)�S���!"����������������������

� (������ ��������#��������������������#�������������������3*�S�) ��������������

������!�!����������������3*�S�) ���������������������� �����������

�� ���������������3*�S�) #���� ���������������

Page 95: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

% ��������� �&���

+�$������� �������!�������"! �������� ��

�����!6� !4!�����!����������! �������� ��

�� ��4���"�!����� $����! ������������������ .�

�������! ���������������������������������������� .�

-�����!� ��� !������! ���������������������� �&,

7��! ������������������������������������������ �&5

�'����!�! �������������������������������������� ��&

Page 96: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

:�)�����������������������&�

:�)�������

6�����������������������������������F��������� �����B

��� �) 9*�,[email protected]/

����������������F����������������� ���������������������������������������

���������������) 9*�,������"�������������� ��������������G������������

�) 9*�,T.U �,��2*����,��$*"* *���V*��%?�"*�� �,�����*3*������2*�!��!71

�) 9*�,T@U �,��2*�,*#���1

��������]

�) 9*�,TMU �,��2*�"!,�?������32� �,�?�*"* *��1

������ �������AA����������������K�������� �������������������� �������������

��� ������������������������� ������������ ���� ����������������������������

�����������AA��������������������!���������������������S������������

��������F������������������ ���&����������������������B

#2!� #2!��!7T<.U/

�"�!� �"!��!7TH.U/

S������������������������ ��������������������������������� ��#����������

����#�����������������#� �����!�������#�������F�����

6���������������������������!���������������D��������������B

��� !���:T<.UT@HU/

S�������������������������������������������������������������������������

������������������#��������������������������� ��������������������

�������� !���:B

◆ �������30���#�����������K�������

◆ ��������1�������#�����������K�����2�

◆ !���:T@LUT@@U��������������������������������������2#����������

◆ !���:T@LUT@@U�����������������������������������������������������2�

◆ �����������"������#��������#���������������������������������������

������F����E�������������������������������������������30���������1���������

����B

◆ ��������� ����� !���:����� ������������!���������N� !���:T�UT#U�N

�������������������� ������������ ���������������������� �#�������������

��������������������������������������������������

!���:T<.UT@HU

������ ������� ������ ������� ������� ��������

Page 97: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� -�����������

S�������" ����������������������������������������������������������������������

�������� ��������%��� �������� ������� �� � ��������� ���� ��������� ����� ��� ��

�" �����������������������������E��������������#���������������������K��

S�����������������������������������������������#������������"�� �������#�#

���������������������������������#�������������������������������������G�����

S�����������������������������������#� ��#�������������������������������

��������������B

��� ��T@;U� G� � &.?;@?<I?;@?;.?;@?;.?;@?;@?;.?;@?;.?;@'/

�������������������������������������������������������������������������

�����#��� ��������������������������������������������

���������������#�������������� ��������������B

#2!� !��THU�G�&F2F?F*F?F"F?F"F?F�F'/

���������������������������������F���������������������������������� �������

���������� �������#������� ����� ������������������������������������������

�F�������������������� �������#������"����������������������������������K���

������������#������������������������������������������

S���������������!����������!�������������������������B

��� �!9T;UTLU�G�&

&@?<?;?L'?

&H?X?K?I'?

&M?@.?@@?@<'

���'/

6������������������������������������#�������������������������� ���������

�������������������������� ����������������#�]/^#����������������������

���������#�]2^#�� ��������������������������� ��������!9���������������

��!��������������������� ����������������������������������B

�!9T.UT.U GG @

�!9T@UT<U GG K

�!9T<UT;U GG @<

S���������������������������������#�����������B

��� �!9TUTLU�G�&

&@?<?;?L'?

&H?X?K?I'?

&M?@.?@@?@<'

��'/

Page 98: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�������8���#�������������������

:�)�������� �)��3������

S�'���������������,������ ���3-������������������������!��������������������

�������AA���������*�����������,����3�� ����������������������������!�������

�!������������������������������ ��#2!������������������������������������#

_C._#����������������������� �������������������������������B

#2!� !��THU�G�&F2F?F*F?F"F?F"F?F�F'/

����������������E����������0���2����������������������������������������������

��Z����[�� ������������B

#2!��!��TXU�G�&F2F?F*F?F"F?F"F?F�F?FC.F'/

������!��������������������Z����[���������!����������� �������������������

�������#�����������������������!�����������������������

����������������������G����������B

#2!��!��TXU�G�A2*""�A/

=������ ����� �� �������� �������#� ������ ���� ���� � ������ ��� �������#� ��

��������������������G�����������_!_�����_C�_��%�����������������������������������

G������ ���������G������� ��������"���������������������������������������

������������������������������������������������������������#����

�AA������������������������C�����������������'��6����#�����AA

�� ��������� ���������������#���������������� �����)""1#��B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

#2!��!��THU�G�A2*""�A/

����$�����G./��+@./��66%

���$!��T�U�GG�FC.F%

#�)��++�A��)""�A/

*",*

#�)��++�!��T�U�++�A�A/

'

������ �������� �����������������B

2�*�"�"�����)""���)""���)""�^�_

����������������� �������������������������������_C._��������������������

����������������Z����[�

���������!G�������G������ F!F� ��� ������������������� ����AA� �� � ������ ���

%��������!������������� ���� ���������&��������#�A!A� ���������!�����������!

�����#��G����������������������� ���F!F#FC.F�

Page 99: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

S����������������������������������������������������!������#����������������

���������������������������������������������"���������������������������� �B

A2*""�AT@U GG F*F

.������������������������������������ ���#������� �������������������

������ ���������D�����������������������D����������������������������������

������������������������� �����&��������#��������������#������������������

�"������������������#������������������������������������������������

�������������S��������'��������������������������B

A�����8�#!�F����*����"*A

� ������������� ����������������!������������������#���'�����������������������

�������������������������������������������������������������������������������

5������� ������� ������������� ��#�������

��� ��������������#�,"*�3�2,1#��#�����������������������,������������#���

K�-������!������� ����������,"*�3�2�D��������������������!����������������

�������D���������������� ���������������#�)��������������� !�����.�����������

����������������������� ���,"*�3�2�������� �����#������������������������������������

�������#�)������������

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D������F,"*�3�2,1#��F�Z�������2*�"*�3�2����!��5,����3�,���*����

�D����������������������!�#2!�!#�*��!��!7?�),��3�,)9,#����,

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

����,"*�3�2$#2!��TU%/

���� !��$%

&

��������#2!����,����3TH.U/

��������#�)��++�A���*�����)��,����3�A/

��������#���--���,����3/

��������#�)��++�A�����3�"*�3�2��,�A�++�,"*�3�2$��,����3%�++�*��"/

'

����,"*�3�2$#2!����,����3TU%

&

�������������/

������������$�G./���,����3T�U�PG�FC.F/��66%

����������������/

���������*�)��$�%/

'

Page 100: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

,"*�3�2� �������� ���� ���� ������ �� ����� �������� ��� ���������#� �������� ���

���������������������������� ������������������ ��������������������

F�������������#�������������������������

��� �������� �� ��������� ��������� ���� ����� �������� FC.F��9�����#� ���� ����

�����������������������������!�����'����������6����#������������ �������!

�����'�� ������� ��� ���������� �������� ��� �#� ��� K����������� ��� ���� ����

���������� �������� �� ���� ����� ������������������� ��� K���6��'�� ���

��� �������� ������������ ���������B

���*�����)��,����3��������� � �

�����3�"*�3�2��,�@<

��������!�����������������������������������������#�,"*�3�2�������������������

���������������������������'���������������� ���������� ��������������

�AA��������������������������������������������������������������������

�!�����������������������#��������������������������� ��������������!

����������,����3���������� ����������AA���������*����������������������������

������������!��������������������������������������������������

5�������������� ���������������������

;���������������������B

#2!� ,�3TH.U�G�AK�)9"*���)9"*����"�!������)9"*A/

#2!� D#���?�D"���/

��������������������� �����B

#����G�"����G�,�3/

����������������������������������������!��������������������������������B

02�"*�$D"���%

"���66/

�*�)��$"����5�#���%/

������� ��������� �����������������,"*�3�2��������#�����������������������

������9�������B

◆ #��������"���� �������������������������������������������������������,�3�

◆ D"����������������������������������

◆ D"�������������������,�3T.U�

◆ "�������������������N,�3T.U�

(���� "���� ��� ����������� ��� ��#� D"���� ��� �G��������� �� ,�3T@UE� ����� �����

����������������#�D"�������������������,�3T<U#���������

"������������������������������������,D"���-��G�������������������������D"�����������#

���������������������#��������'������������������" �������� ���������������

Page 101: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����FC.F�� ������ ��������������� �����"����������������������,�3�,�������

#���-���������������������������#��������������������������!������,�3�

6���������� ������������������!�����!������� ���#�,"*�3�2�1#��B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F,"*�3�2�1#��F�Z�������2*�"*�3�2����!��5,����3�,���*����

�D����������������������!�#2!�!#�*��!��!7?�),��3������*�,

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

����,"*�3�2$#2!��D%/

���� !��$%

&

��������#2!����,����3TH.U/

��������#2!��D#����G���,����3/

��������#�)��++�A���*�����)��,����3�A/

��������#���--�#���/

��������#�)��++�A�����3�"*�3�2��,�A�++�,"*�3�2$#���%�++�*��"/

'

����,"*�3�2$#2!��D#���%

&

��������#2!��D"����G�#���/

��������02�"*�$D"���%

����������������"���66/

���������*�)��$"����5�#���%/

'

��������������������������,"*�3�2��� !������������� ��������������������

��� ������"��������#�����������������������������!��������,����3��."������������

���� ����������������� ������������� ����������,"*�3�2,1#���

Page 102: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����#��&��������)��������

����� ������������������������� ����#�������!��������������� �����

L���������������������������#�#,����3#���������������������������AA�*����

����������������!����������,%�� ��������������AA��������������#���������

���������AA������������,����312������������#,����3����������������� � ��

������������ ��������������,����3���������������������������������������������

��������������������������AA�,����3��������%������������������AA������������

�������������������������B�,����12���#,����E�,��"�912���#,��"�9��������-�� ����

#,����3#��������������������������� �������������� � ����B

(��#")�*�+#,����3-

������������������!������!�����������������B

,��"*� )�������������������������

,��#!� 8�������������

,��#�7 � ��������������������

,��# � �� �������������

,���# � �� ���� ���������������

,��"*�� �����������,"*�3�2,�����,"*�3�2��������� ������������B

��� "*�/

#2!� ,TH.U�G�A���*:��,����3A/

"*��G�,��"*�$,%/

%���� ��������#� "*���������� ��������������������� ��� �����!������,�/-#���

������������������������������������

,��#!������������������!������B

#2!��,@TH.U�G�A���*:��,����3�A/

#2!��,<TH.U�G�A0��2�!���2*��!��*��*�A/

,��#!�$,@?�,<%/

����� ����������!������,<������������������!������,@#����������A���*:��,����3

0��2�!���2*��!��*��*�A������������������,@����'������� ����������������������

,@� ��� ���� ������ �� ���������� ���� F����� �!�������� ��� ���� � �������

����#� ���� ����� �������� �� ,��#!�� ��� �������� �� ����� ������� �� �����

�����������!�������������� �������� ����������!�������������������!

�������$!�������!��������������" ������������� ���$�

,��#�7� � ���� ���� �������!������ ����� �� ���� ����#� �� ���� ����� ���� ����

������������������ ����� ����"�� ����������������������������������,��# �����

,���# �������� �������!��������������������������#�K��� ������������#

�� ���������������� ��������������� ��� ��"���� �������� ����� ����#��G���� ��

���������������������

#2!��,@TH.U?�,<TH.U/

Page 103: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

,��#�7$,@?� A2*""�A%/

,��#�7$,<?� A2!""�A%/

�*,)"��G�,��# �$,@?�,<%/

44 ,@�3�*!�*���2!��,<?�,���*,)"���,���,����*

,���# ������������������������,��# �#����������� ������� ���������������

��������������������!������B

,���# �$,@?�,<?�@%/

��������"�� �������#������������� ��������������������������������������

����������������K�������#����������G��������S�'����������������AA��

�� ��� ��� ������� ������ ���� GG� �G������� ���#� ������� ��� ���� ���

��������� �� ����� ���� GG� ���� �� ���� ���������� �������� ��� �� �� ����

�� ������)������ ������������#�������� ������%��������������!

�������� GG?� ����� �������� ��� ���� ��� �!������������ ��� �� ���� �� ���

����� ���������������!������� ������������������,��# ������,���# ����

������������� � ���

������ �����>� �������������

��� ����,����,1#������������������ �������� �������������,@�����,<����

��������������� ���������,@���,<�����,<� ��������������,@#��������������������

�������� ���,����,��������#������������� ���� ��������,<� ���,@� ������������

�����#��������"������������������������ ��������������������"��������!�����

�G������������,��,���

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F,����,1#��F�Z�������2*���,����������5,����3�,<

�D ���,@1� *�)����2*���,�����������)��?

�D ���!��*3!���*��!")*���2*�0�,*1

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�+#,����3-

(�*���*�����H.

����,����,$#2!��D?�#2!��D%/

���� !��$%

&

#2!�����,��@T���U?�,��<T���U/

Page 104: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��������.�@�"����@/�.�A�"����A-

�+������0(�-

�(&��66�#�+�$������+9��(�F$��$����$,H�#-

��+;9$�2�@/���5-

��+;9$�25- DD��$�,�������+9�34+3

�(&��66�#�+�$���$���������+9H�#-

��+;9$�2�A/���5-

��+;9$�25- DD��$�,�������+9�34+3

0(��"����0(�2�@/��A5-

�)�20(��6� 5

�(&��66��A�66�#�+(��)(&+,��+�#�66��@�66�$+,�-

$��$

�(&��66��A�66�#����0(����(+�#

�66�0(��66�#��+�#�66��@�66�$+,�-

8

�+�����0(�2�����.�@/������.�A5

�+�������$+-

��������.�0���"��@-

�$+��"�����$+2�A5-

1���$�2.�0��5

�)�22���+�*02�0��/��A/��$+55�""� 5

�$�&�+2�0���:��@�7�@5-

�0��77-

8

�$�&�+2:@5-

8

���*��+������������� ������� �� ����� ����!����������� ����� ������ ����� �

���0(�������������� �������������B

��+;9$�2�@/���5-

��+;9$�25-

��������������������������B

��+�??��@-

������������������������������� ���� ������� ���������������������������

����������������������+;9$����������� ���� �����"������������������#�������������� ��

��������+��� ���� ������@���������������������������������

Page 105: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

*��'����������"�� ������" ��������������������,����,�������� ���,@� ����

�������!������A��*!��K)�,��!�*�2*�,����3"7��������*,A�,��������� ���O-#������

,<� ��������������!������AK)�,��!�*A�� ����������������������������������

��������� ��� ����#�"���#��G������,@���������� ��������������������!������

%� ����� �� ,��"*�� ������ ���� ������� �� �����!������ ��� ,<������#� ��� ���� ����� �

AK)�,��!�*A#������������������� #�������"������������� ��������������!������������#

,���# �������������� ���AK)�,��!�*A���������������������!�����������������

�� ���� ������!������� ��� ����'���������#�,���# �� ������ K��������,����,

������������������ ��������AK)�,��!�*A#��������#�$������������������������#

,����,����������� ���������5@�

6��'��������� ���� ���������,����,1#��B

���*��,����3����9*�,*!�#2*�8�!���"�#$% $�$�����%"�&$�����&�" � �%

���*��,*!�#2�,����38�#$% $�$�

K)�,��!�*�!����,������K������*!��K)�,��!�*�2*�,����3"7��������*,

Page 106: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����������

���������������������������������������K�������� ������������������ �������

�������������������F������������������K��������� ��#������������������������

���%������������������������������� �B������������������������������������

���������%��������������������������������������������!���� ����AA

������#��,��)#��,��������������� ����#���������������������� ����-������� ��

��� ���������������������� ������������������������#��������������#������������

��������������������������)9"�#E�����������������������������������������!�*�

�������������������������������������������

���������� ���������� ��� �����������

6���������������������������B

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

��� ,��#ES�!E*$%/

���� �*���*�$���%/

���� �!E*S��� S,��#E$#2!�� D%/

���� ,2�0S�!")*,$%/

'/

9����� ����� ����� ��� ��"� ������������ ���� ��� ����������������4���� ���

���������������������������� ��������������E�����������������������������

������������������������%��������������������������������������������)9"�#E����

������������������������������������������������������������������������

)����������� �������F���!����������������� ������#���������������������

�����������)9"�##���������������AA���������������������������������������

������������� ���������AA����������������������������������������������

������������� ���������������������������������������������������!������������

����F������������� ����������������������������������������������������������

������������������������������E������������������ ������������������������

����������������������������������

��������������������������������������������D��������� ���������������

������������F������ �������#�����������������������������������,�����������-����

���������%���������"����������������������������������#� �����!�������#�����

�� ��,��#ES�7�*�� ����������� ���������������������������������������������

������������������#��������#������������������� ������������������������������

��#����������#�������������������B

Page 107: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

��� ,��#ES�!E*$%/

���� �*���*�$���%/

���� �!E*S��� S,��#E$#2!�� D%/

���� ,2�0S�!")*,$%/

',��#ES��* /

9�#������������������������������������������ ��,��#ES�7�*#�������������

��������������������������������,��#ES��* ��S������ �������� ���������������

��������������������������� ���������������������������

���������������������������������������������������#�����

,��#ES�7�*� ,��#ES��* @/

������� ��� ��������� �� ���� ,��#ES�7�*� �������� �������� ���� �� ������ ���

������������������������������������������ �������������������� �����

�� ������������������������������(��#")�*����������������������������������������

����������������� ����

���������� �#���

��� �� ����� ����� ���� ��������� �� �� �������� ��� �������������4� ��� ���

,��#ES�7�*��"�� ��#�����������������������������������������������������

������������������������������������� ����������������������������������#

�����������������"B

,��#ES��* @1�*���*�$@..%/ 44����*��@..� ��*

��� C��'�� C������� '� ������������� �*���*����������������������

,��#ES��* @#������������������������������������������������� ��,��#ES�7�*�

���'����������������������������������������������������������S�

�������������������������������������* S�! *����������B

,��#ES��* @1��* S�! *TLU

%�������������������������������������������������������%��������

������������������������������������

��'��������������������������������������������������������� ���6����#���

���'���� ���������������������������������,��!�������-��G������� ���

GG��.������������������������������������������������ ����

Page 108: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

,��#ES��* <�G�,��#ES��* @/ 44�!,,�3� *��?�

���$,��#ES��* @�GG�,��#ES��* <% 44�#� �!��,��?�0���3

9������ ����������

S�������������������������������������������������������6��'������"�� ����

����������������������������������������B

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

,��)#���*�!�"

&

��� 2*�32�/

��� 0���2/

��� �*��2/

,��)#��9��

&

#2!� 9)�"���3TH.U/

��� �"���/

��� 9!7/

��� ,2*"�/

��� R)!����7/

'9��S"�#/

#2!� ,�*#�!"S�*R,TH.U/

#2!� �!��S�) 9*�[email protected]/

'��* S�*�!�"/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

��� ,��#ES�!E*$%/

���� �*���*�$���%/

���� �!E*S��� S,��#E$#2!�� D%/

���� ,2�0S�!")*,$%/

'/

44��*���*�!����,�!�#*�����2*��)�*� �,��,��)#�)�*

,��#ES�7�*� ,��#ES��* /

�������������* S�*�!�"������������������,��#ES��* ������������������������!

������������������������ �����������9��S"�#���������������������������* S�*�!�"

�����������������������������������������AA#������������������������������

������������������� �������� ����#������G��������#������"��������B

Page 109: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

,��)#��9��

&

#2!� 9)�"���3TH.U/

��� �"���/

��� 9!7/

��� ,2*"�/

��� R)!����7/

'/

,��)#���*�!�"

&

��� 2*�32�/

��� 0���2/

��� �*��2/

9�� 9��S"�#/

#2!� ,�*#�!"S�*R,TH.U/

#2!� �!��S�) 9*�[email protected]/

'/

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

�*�!�" ��* S�*�!�"/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

��� ,��#ES�!E*$%/

���� �*���*�$���%/

���� �!E*S��� S,��#E$#2!�� D%/

���� ,2�0S�!")*,$%/

'/

,��#ES�7�*� ,��#ES��* /

�������������#������������������������ ��������������������������B

,��#ES��* 1��* S�*�!�"12*�32�

������������������������������������������B

,��#ES��* 1��* S�*�!�"19��S"�#1,2*"�

���������������������������#��������������������������������������������

������ ���� S�� ����� �� �� ����� �� ����� ����� �AA'�� �� �� ����� �

����������������������� ����������������*�!�"��������� �������������������

��* S�*�!�"��������� ���� ���� ������ ��� �����������������*�!�"����� �������� �

����� �������,��#ES�7�*#� �� �� ���� ������� �����#� ����������*�!�"� �����

��������� ��

Page 110: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

S������������������������������������������������������������������

�������������������������������F���#���������������������������"�� �������#

���G��������� ���� �����������!��S�) 9*�� ������������� ���� ����� ����� ����������

�����"������������������������������ ���B

,��#ES��* 1�!��S�) 9*�

?����� ���������� ��������

*��'������������� ��� ���#�����,��@1#��#����������������������������������

���������������� ��,��#ES�7�*�������� ����������������B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F����,��1#��F�Z���*!�*,�!�,��)#�)�*���,�!�#*�!���!,,�3�,��!�!

�D�������������������������������,��!�!� * 9*�,1��2*��#!"",� * 9*���)�#����

�D��������������������������,2�0S�!")*,������,�"!7��2�,*��!")*,

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�T;.U/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

��� ,��#ES�!E*$%/

���� �*���*�$���%/

���� �!E*S��� S,��#E$#2!�� D%/

���� ,2�0S�!")*,$%/

'/

���� ,��#ES�7�*88,��#ES�!E*$%

&

44����,��#E5�!E��3

�*�)���./

'

�����,��#ES�7�*88�*���*�$���� �*���*�SR�7%

&

44��*���*���2*�R)!����7

'

Page 111: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

L(�,���(�MI�'0$HH��M$I)�(*I��(�M2����� .0���I+(5

DD���M$���$�0����)�(*���(�M

8

�+��*��+25

��(�MI�'0$���(�MI��$*-

�(+����+�����"�� -

�(&��66�#�+�$����$*�+�*$�#-

��+;9$�2��(�MI��$*;��$*I+�*$/� ��5-

��������+;9$�25-

�������(&��66�#�+�$��0����+&*F$��#-

��������+�??���(�MI��$*;0���I+&*F$�-

�������(&��66�#�+�$���(���0���$�#-

��������+�??���(�MI��$*;�(��I0���$-

�������(&��66�#�+�$���$���0���$�#-

��������+�??���(�MI��$*;�$��I0���$-

�������(&��66�#�+�$����(�M�(+���+,�#-

��������+�??���(�MI��$*;��(�MI(+I��+,-

�������(&��66�#�+�$���$(�,$���$L$��#-

��������+�??���(�MI��$*;�$(�,$�I�$L$�-

��������(�MI��$*;��(1IL��&$�25-

8

L(�,� ��(�MI�'0$HH��(1IL��&$�25

�(&��66�$+,��66���$*I+�*$�66�$+,�-

�(&��66�0���I+&*F$��66�$+,�-

�(&��66��(��I0���$�66�$+,�-

�(&��66��$��I0���$�66�$+,�-

�(&��66���(�MI(+I��+,�66�$+,�-

�(&��66��$(�,$�I�$L$��66�$+,�-

8

��� ���������� �� ���� ��(�MI�'0$� ������ � �������� ��"� ����� ���� ��� �������

������#����������0&F������������ ��������������������������������������

����������#����"�� ��B

�+�� ��(�MI�'0$HH��(�MI��M$25

DD�,(���(�M:��M�+9

�$�&�+� -

8

Page 112: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������������������������������������,��#ES�!E*#������������������� �������

��������,��#ES�7�*����������������������� ������

��� !���������������������������������������������������� ��,��#ES�7�*��)����

����������� �� ���� �������#� #�)�� ����������� � �� ���� ���� �� ����� �����

4� ���������������������" ������������� ���������������������#�������#��13*�

�#������������������� ���������������������������������,��#ES��* ��)������#

������������������,2�0S�!")*,���������������� �����������������������������

�������

:�)����������&��)�����������

S�������������������������������������������������������������������

�F�����*�����������������,��)#��9��B

,��)#��9��

&

#2!� 9)�"���3TH.U/

��� �"���/

��� 9!7/

��� ,2*"�/

��� R)!����7/

'/

���� ��� ����������� ���� ������������� �� ������ ����� ��� ����#� ��� �

��� ������������������������������.��������������������������������� ��

����"������S������������������������������������������������������������� �

9��B

9���9��S!��T<.U/

9�������������������������������������������������������B

����$�����G./���+�<./��66%

&

���$9��S!��T�U1R)!����7�PG�.%

&

44���* ���)��

#�)��++�A9!7�A�++�9��S!��T�U19!7

++�A�,2*"���A�++�9��S!��T�U1,2*"�

++�A����9)�"���3�A�++�9��S!��19)�"���3�++�*��"/

44��!E*���*��)�����,��#E

9��S!��T�U1R)!����7�5G�@/

9�*!E/

'

'

Page 113: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

-����������� � ���������� �������

S������� ������� ����� ���������������� ������������ ���� ��� ���� ������ ���

���������#� ������ ����������� ������ ����� �������� ����� ���� ����������� ��

��������,��1#�������������������������������������������9����'������������

���������������������������#����������������������������������������������������

L�������������������������������������������,��#ES�7�*�����,��#ES��* #����

������,��#ES��* ���������������B

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

��� ,��#ES�!E*$%/

���� �*���*�$���%/

���� �!E*S��� S,��#E$#2!�� D%/

���� ,2�0S�!")*,$%/

'/

,��#ES�7�*�,��#ES��* �G

&

A�)�9�#2!�3*��,*0��3� !#2��*A?

AIK.H@LH�A?

<KH1XH?

;L.1..?

H.?

<.

'/

%���������������������" ����������������������������� ������������� �����

��������������#������������������������� ������������� ��������������!

����#����������������������������������������������������������K������������

�������������������������������������������������������������������

?����� ������#�����&����

����������������� ��G���������#��,�#���"!��"*����� )�!9"*����������������

��� ���3��9���������'�������������AA�,��)#�#��������" ��������������� )�!9"*�

(��������������������������������������������#��������G��������������������

�����#��,����������������������������������������G�������������������&�����

�������������������������������������������������������������������������

#��,�� ���� ������������� ����� ���� ����������� )� �"�� ��#� ��� ���� �����������

�������������������������F��������#������������������������������������������

���#���������������������������������������������6����� )�!9"*B

Page 114: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

�+��*��+25

���&�����(�MI�'0$

���� ��$*I+�*$�< !-

���� 0���I+&*F$��< !-

,(&F�$ �(��I0���$-

*&��F�$ ,(&F�$ �$��I0���$-

�+� ��(�MI(+I��+,-

�+� �$(�,$�I�$L$�-

�+� ��(�MI��M$25-

L(�, �$(�,$�2�+�5-

L(�, ��M$I)�(*I��(�M2����� .5-

L(�, ��(1IL��&$�25-

8-

�(+�����(�MI�'0$�)�G$,I��$*�"

#�&�F(����9$,��$1�+9�*����+$#/

#QJ �@B� #/

AJ�;=�/

<B ; /

� /

A

8-

)�G$,I��$*;�$��I0���$�"�B ; -�DD���

8

Page 115: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����������������������

��������� ��� �����������#���

S������������������������������������� ��������������B

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

��� ,��#ES�!E*$%/

���� �*���*�$���%/

���� �!E*S��� S,��#E$#2!�� D%/

���� ,2�0S�!")*,$%/

'/

,��#ES�7�*� ,��#ES��* /

,��#ES�7�*�D,����G�N,��#ES��* /

9����������,���#������������� ����#������������������������������������������

��������#�,��#ES��* ��S�������������� �����,�������������������������������

,��#ES��* ���������������������'��������������������� ���B

,���5-�!��S�) 9*�

,���5-�!��S�) 9*�THU

,���5-,��#ES��S2!��

,���5-�*���*�$@..%

=�����������,���� ��� ��������������������������������������������C�F������'�,���

,D,���-� ��� ���� �������� ����� �������� �����#� ���� �����"� ,���5-+ * 9*�-� ��

�G��������� �� $D,���%1+ * 9*�-�

����������� �� �������

S�� ���� ���� �������� ���������� ��� ��������� �������� ���������� ��� �����

������������ ���� �����������������������������������������������B

�����,� *S�)�#$,��#ES�7�*�D%/ 44��)�#�����������7�*

1

1

,��#ES�7�*� ,��#ES��* /

,��#ES�7�*�D,����G�N,��#ES��* /

,� *S�)�#$,���%/ 44��)�#�����#!""

Page 116: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

1

1

�����,� *S�)�#$,��#ES�7�*� D�����% 44��)�#������*��������

&

�����5-�*���*�$@..%/ 44��*���*��,��#E

'

���������AA#� ���� �������� �� �� ��� ������ �� ������ �� ���� ��� ������

�������������������������������������������B

�����,� *S�)�#$,��#ES�7�*�N%/ 44��)�#�����������7�*

1

1

,��#ES�7�*� ,��#ES��* /

,� *S�)�#$,���%/ 44��)�#�����#!""

1

1

�����,� *S�)�#$,��#ES�7�*N� �*���% 44��)�#������*��������

&

�*���1�*���*�$@..%/ 44��*���*��,��#E

'

L��������������������������������������� ����:������������������������

����������������#����������� ����!�� ����!M���������������������������

� ����������������������������������������� ��������������������E�����

�AA� ������� ����� �� ������� ���������� ��� ���� ����#� ���� �� �������

���������� �� ������� ���� �������� ������������ ���� ����� �G���������� S�

���������������������������� ���#��������������������� ��������

�����������

� ��� ��� ������ ���������� ���������� �� ���� ����� ����� �F����#� ����� ��� ����#

������������������� ���������#��������������������� ��������#������� �������!

������#����������#������������ ������������������������ �������������

�������� ��������� ���� ������ ��� ������������ ������� ��������� ����� �� ���

������������ �������� ���������� ����������������'��������� ���#���������

�������������������������

Page 117: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

?�����

����AA������������ ��������������������������������%����������������������

�����������������,�������������-����������� ������������������ �����������

����������� �� ���������� ���� ������������� �� ���� ����#� ���������� ���

���������� � ���� ��� ���� �������������� ���� ���������� �G����������� �������

�� ���� ��������%�� ���� ������ ����#� ��� ��������� �� ���� ��� ����������

����������"������S������������������������������������ ������������#��� ������

����������� ������������ ������

*�����������#����������������������������������������� �������������������

������������������������������, ������������������������� ����-��%�����

�����������������������������������������������������L�������������������

��������������������������������&����������������������#�����������������

��������#���������������� ����0�

��'���>������������������������ ������������!�*#�����*#�*����)9"�#��������

������������ �������#��������������������)9"�##��������������������������������

L����������������������������������������7����������������������������

�������� ������������������������������������������������������������

������������

?����������>�����������������

6��'������ ������"�� ��� ���������������������������������� ��� ���

���� ����� ����������������������� ��������������������������������������

� ��������� ����� ���������������������������������������������� �����

���������#����������������! ���������������������������

4� ��������������� ������������#�������� ����������� ����������������

����#���� ���������������C����'�

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�+#,��"�9- 44��*#"!�*,�F!���F�!���F!���F��)�#����,

(��#")�*�+#,����3- 44��*#"!�*,��5,����3��)�#����,

44���K*#"!�*�!�)����8����#�)"��9*�!�,� �"*�,��*!�,2**��#*""

)�����,�S#*""

&

����!�*8

��� ��!"/

��)9"* ��!"/

#2!� ,�!"T<.U/

#2!� ��,����3T<.U/��44�!��!7��������)�

Page 118: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

0&F���H

���� 9$�I�(M$+25-

���� �+��'�$25-

L(�, 0&�I�(M$+2����5-

8-

������0I�$��HH9$�I�(M$+25

�(&��66�#�+�$����+&*F$�/�)�����(+�(������+9H�#-

��+��??��+����+9-

�$�&�+2�+��'�$255-

8

������0I�$��HH�+��'�$25

�+����"� -

1���$�22�+����+9��!�P"�34 35�NN�2��6�A 55

�)�2�+����+9��!�""�3;35 DD�,$��*���0(�+�

�$�&�+�23,35-

�)�22�+����+9��!�6�3 35�RR

2�+����+9��!�?�3C355

�$�&�+�23�35-

�77-

8

�$�&�+�23�35-

8

L(�,��0I�$��HH0&�I�(M$+2����� �(M$+I�'0$5

�)�2�(M$+I�'0$�""�3�35

�L���"���(�2�+����+95-

�(&��66�#�+�$9$��#�66��L���66�$+,�-

8

$��$

�)�2�(M$+I�'0$�""�3,35

,L���"���()2�+����+95-

�(&��66�#�(&F�$�#�66�,L���66�$+,�-

8

$��$

�)�2�(M$+I�'0$�""�3�35

Page 119: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����0'2�L��/� �+����+95-

�(&��66�#���+9�#�66��L���66�$+,�-

8

$��$

�(&��66�#�+L���,�,���#�66�$+,�-

�(&��66�#���������F$$+���(�$,4+#-

8

�+��*��+25

�0I�$����$��-

�$��;0&�I�(M$+2�$��;9$�I�(M$+255-

8

���� �����������"�� ����������������������������������������������������

������������������������������������������ ��������������������������������

���������0I�$������������������������������������� ������������ ��������

����B����������#���,(&F�$��������������������%������������������#��+����+9#

�������������������� ��������� ���������������'����������&+�(+#���� �������

���&������������������������������� ���������������������������� ��������� ��B

����!�����#��������,��������������� ���-����"��������� ���������������

����������������������������������� ��������������������������������

������� ���� �������������������������������������

���*��+����������������������������#��$��#�������������0I�$���� ������������������

������������������0&�I�(M$+�� �������� ��0&�I�(M$+��������� ������������ ���

�������������9$�I�(M$+#������� � ��� ���������� �� ����������� ��� ��� ���

�+����+9�

9$�I�(M$+� ��� ���������� �������������+��'�$#����������� ���������� ���������

������ ��9$�I�(M$+����������� � ��������� ���� �� ��������� �� ����9$�I�(M$+

����������������������#�������������������� ����������0&�I�(M$+�����������

�������������������������������G�������������� ��������

Page 120: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������

� (������ ���#�,#��71#���,�������������������������������-#������� �������

��������������!��������������������� ���������������

� 9���������������� ���#� ��#��71#�,�������������������������������-#

��������������������������������������������������������,#��71#����,�

����� �K����������������������������� ���#�������������������������

��'��������������� ������������� ����������,���-��������������� !��-�

� (������ ������������� �������� ����!������� ������������������!�����������

�������G�����������������������������0D��� �������������������������"�����

����������I���������������������������!�������������������������������������0D

��������������������������������� ��������L�������������������������������

����������

� (���� �� ���� ����� ���� ��� ��� �� ����!������ ���� ����� ��� ����� �������� ���

���������������������

Page 121: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

" ������������ ��� ��������

�������1�����$��'���!!��! ���������� ���

*!!����������������������������������������� ��%

��������� ���� ���������������������������� ��,

-�������������!!������1��" ���������� ���

-��������'�����8�1��������������� ��.

!�9��$� �������� ������������������������������ ���

�'����!�! �������������������������������������� ��(

Page 122: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

2������+�����)������������

.�����AA��" ��������������������������#����������������K�����!K�����

���� ���� �������!��� ����������AA#��������������������������������̀ ����

C�����'E���!K�����C���'��%����'�������#��AA�������� �������������������� �

9��"E�������������������� �������������������������D���������)*���!",*��&�����

�����������#����"�� ��#���������,2������ ����������������������������B

(�*���* � =� @

(�*���* ����� .

,2��� �!�*S�!"���G�./ 44�,*�������

]

44 �,,�3���*�)��5�!")*�����!�*5�!"��!������)�#���������2*��"!31

44 �2*��*�)����!")*��,�*��2*��.�$�����%����@�$� =�%1

�!�*S�!"���G��!"��!�*$%/

=�����������������" ������������K�����!K�������B

���$�!�*S�!"��%�#�)��++�A>!"����!�*�*��*�*�A�++�*��"/

���$P�!�*S�!"��%�#�)��++�A���!"����!�*�*��*�*�A�++�*��"/

����!�*S�!"���������K�#�������C���'���������������������������������!�*S�!"������K�#

������C�����'�� ������!����������������#�P#����������������������������������

���������������������������

���������"�� ��#�������������������!"��!�*$%���������������" ���������������������

��������������'���>�������B

���$$�!"��!�*$%%�GG�� =�% 44��*�)����!")*���)*?��!�*��!"��

#�)��++�A>!"����!�*�*��*�*�A�++�*��"/

���� ��B

���$�!"��!�*$%%#�)��++�A>!"����!�*�*��*�*�A�++�*��"/

)��" ������#�������K��� ������� C�����'E���!K�� ��� C���'��)���������

�" ������#�C�����'��G�����K������C���'��G�������� ����������B

��� !�G�./

��� 9�G�5H/

��� #�G�H/

�"�!� *�G�<1K@I<I/

! 44 �����

9 44 � =�

!�6�9 44 � =�

9�6�# 44 �����

* 44 � =�

!�GG�. 44 � =��$@%

9�+��. 44 � =��$@%

*�-�;1. 44 ������$.%

)������#������" �������������������0���������������� ������C���'�����C�����'B

02�"*�$@% 44 �������*�"���

02�"*�$P.% 44 ,! *

Page 123: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������

������ �������������� ���#�G#����� ���������������������� ������������ ���

����������������� ���� �����������������������������#����� ���������� ����

����������������������������������������" ����������������������������

������ ���� ���� ���� �������� ������ ��� ����� ��� ��� �� �������� � ��

�" ���������� :�6�H�

��� ��S"*!�,/

]

��S"*!�,�G�./ 44�!,,�3� *���#2!�3*,��2*��!")*�,���*��!���2*

44�"�#!�����!,,�#�!�*��0��2��2*��! *���S"*!�,����V*��

�����������������������S"*!�,#�����������������������������������������B

��S"*!�,�G���S"*!�,�6�@/

���������������������������������������S"*!�,����� ��������������������

������������������������������� ������������AA#���'����������,���

������ ������-������������������������������������������������������ ������

�AA������"B

��S"*!�,66/

��������������������S"*!�,��������4� ��������������� ���#����������� ��!

���������������������� ���������������������������������� ��#�������������

�������������������������������������������������

��������#�����������������������������!��!��� ��������B

��S"*!�,55/

������������S"*!�,����3#��������B

��S"*!�,�G���S"*!�,�6�</

B

��S"*!�,�6G�</

����������� �������������������������������� ����B

:�6G�7 �,�*R)��!"*����� :�G�:�6�7

:�DG�7�6�V �,�*R)��!"*����� :�G�:�D�$7�6�V%

:�5G�7 �,�*R)��!"*����� :�G�:�5�7

:�4G�7 �,�*R)��!"*����� :�G�:�4�7

�������������������� �������������������������������!��!��B

��S"*!�,66/

S�������������B

66��S"*!�,/

�����S"*!�,������������ �������������" ����������������" ������������������

����������!�������������������������#����������������������������G���������

Page 124: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������������������#����������������AA��� ���� ���������������������

���������������G��������B

��� �!7,S���!"/

]

��S"*!�,�G�H/

�!7,S���!"�G���S"*!�,66/

6��#���������������S"*!�,����������������!7,S���!"�������������������S"*!�,

������������������ ������������!7,S���!"������ ��������������� ���1�� �����

��������������������������B

�!7,S���!"�G�66��S"*!�,/

��������������S"*!�,����������������������������������������������!7,S���!"#

�����������������������5�

Page 125: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����������

<�������� ��������

��� ��� ���������������������� �������AA� ����#�����������������

������ ������������ ������ ����������AA���B

+ ���������

- ����������

+G ������������G�����

-G �������������G�����

����G������� �������B

GG �G������

PG ��!�G������

%������������� ������������������,��������������������������-���������

�����#����������������������������������������G��������)��"�� ��B

���$���-����KK�5�@%

�����������������

���$���-�$���KK�5�@%%

�����������������������������������������������)����� ����#�������

������ �������������������������� ������������������" ���������������� ���

��������������

/������ ��������

�AA'��������� �������B

NN %94

OO �=

P 9�

��� ���������������������������� ���#�P#���������������������������������#

5#��������������������������������������#���������#��������� �����

NN�����OO� ���������������� ����������������������������G������� ��!

������ NN� ��� ���������� ����� OO�� )� �"�� ��#� ���������� �� ����� �������

���������������������" �����B

���$ GGL�OO� GGX�OO� GGM�OO� GG@@�NN���-;.%

�����������������'����������� ��������G������@@�%94������������������;.�

��������������������L#�X��M#���������������� =L.�,�-���������������������

�����

Page 126: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �������� ����� ���� ������ �G����� D� ��� ��'�� % ��#� 8���#� �� ������

9������%94�����������������������/0�D�������������� �������������������

��������� ����������������B

���$$ GGL�OO� GGX�OO� GGM�OO� GG@@% �NN�$���-�;.%%

���������#������������������������������� ��������#�����������" �����������

�������������������������������������.�������������������������#�������������

C��� ��� ��'� ��� �� ������� ����� ���� ���� ������� ��� ����� �� ���� �"������

���������������� ����

����������� �����������

������������� ���#�[8#�������������!������������!� ������ �����������

�����AA����������� �������������������������#������������� �������������

��� ����#�������#�����������

L���������� �����#�����[8�������������������������������1111*",*���������

�������

���$:�-�7%

!:�G�:/

*",*

!:�G�7/

L�����[8��������������������B

!:�G�$:�-�7%�[�:�8�7/

��� ���������� ����� ���� �������� ��� ��� ��������E� ���� [8� ��� �� ���

������������������������������������������ �����

(�����������������������" �������������������� ���������#����������������

����E���#�����������#���������������������� ������������������#��� ������

���������������������������������" ������

��� ���������#����������������� �������#������������������������������������

������������F������������[8� �������������������������������������� ��

[8������������������������������������������������������� �������������

����������������������������1111*",*��G��������B

(�*���*����$�?��%�$��-��%�[���8��

%���� �������� ����� � ����� ���������#� ���� �����G����� ����� ������ $�

�"�� ������$H?�X%%���������������������� ���'����������������" �����B

$��-��%�[���8��

�����#���������"�� ��#������������B

$H�-�X%�[�H�8�X

��������������#�X1

Page 127: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������������������+��&

�'�� ����� �� ��������� ���� ������������� ��������� ���� ��� ��� ������ ���

��������������� ���������������������" ���������������� ������)�����

��������������� ������������#����������" ����!�D�9�6�#�������������������$!

D�9%�6�#��������!� D� $9�6�#%�������������������� ������������� ����������

��������� ���������� �������#����� ����AA� ����� ��� ���� ����#� ���������� ���

������� ����J�

%����������������������������������� ���������������������������#����

��������������������������� �����

1�������#��!� ������������� �� ��������B������ ��� ���������� ��������

��������#� ���� ��� �� ���������� �� ���� �" ������ ��� �������� ��� ����

�������������� ��� �" ������ �������� ���� ����������� ����� ����� ���� �� ���

����� ��������� ����#�������������G���� ��������������������������!�!����B

����!�G�@./

����9�G�H/

����#�G�M/

������G�L/

!�4�9�D�#J� 44�@.4HDMJL8��*,)"���,�<

S�� ���� ��� �"������ ��� �����!�� ����� ������ �� ���� ��������� ���

��������������%����� ���������������������������'������������������ ��

���� ������������������������������������������� �����#������ ��������

�� ����� �������������� �����

L����5?�6�����D������������ ����������������������� ��������������������

������� ���$%� �������������� ����������������������������� ���TU� ���

������ ���!����� �G���� ���������� ����� 5-� ���� 1� ��� ���� ����!�� ���

�����!�� ��������������#��������������������� �������� ����������

������������������������� �����������G�������������(��������������#������ �����

����" ������#������������� ����� �����������" ������ ������������������ ���

�����

%���������� �����B���������������� ������������������ ��������� ���!

����������������)��"�� ��#���������������������������������������������

���� �� �� �������� ���B� ����� �� � ��������� �� �� �� ���� ��� ����� ���

�����������C������������� �������'������������.G�����#���������������������

���������*"*�*� ,������� �������!�������������-� �����*"*�*TU� ,������� ��

���������������-�� ������#���������#��� �����������#��������� ��������

��������������G������� ����������������� �������� � �����������������

�����

�������������������������� �������������������������������� �������

�AA#���������������#���������� ����#����������������������������������������

����� ������� �� ���� ���� ����������� ��� ���� ������ ��� ���� �� ���� ���

�����������

Page 128: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

'����"&�% (%%&� �" ) "�

HH�2��(0$��$�(�&��(+5 +(+$

:?�;�2*$*F$���$�$���(+5 �$)���(���9��

77�20(����+��$*$+�5 +(+$

E�20(���,$��$*$+�5 +(+$

�!�2����'��&F����0�5 �$)���(���9��

25�2)&+���(+�����5 �$)���(���9��

�'0$�,25�2)�+,��'0$�()�(FS$��5 +(+$

�(+��I�����2�����(0$���(�5 +(+$

,'+�*��I�����2�����(0$���(�5 +(+$

�$�+�$�0�$�I�����2�����(0$���(�5 +(+$

������I�����2�����(0$���(�5 +(+$

��O$() +(+$

77�20�$��+��$*$+�5 +(+$

::�20�$�,$��$*$+�5 +(+$

2�'0$5�2(�,:��'�$������(0$���(�5 ��9����(��$)�

+$1 +(+$

,$�$�$ +(+$

.�20(�+�$��,$�$)$�$+�$5 +(+$

N�2�,,�$��:()5 +(+$

7�2&+��'�0�&�5 +(+$

:�2&+��'�*�+&�5 +(+$

P�2�(9��������5 +(+$

;.�20(�+�$���(�������*$*F$�5 ��9����(��$)�

:?.�20(�+�$���(�������*$*F$�5 ��9����(��$)�

.�D�T �$)���(���9��

7�: �$)���(���9��

66�??�2�$)�:��+,���9��:F��:���)�5 �$)���(���9��

6�?�6"�?" �$)���(���9��

""�P" �$)���(���9��

N�2F��1��$����5 �$)���(���9��

U�2F��1��$�$G��&��L$���5 �$)���(���9��

R�2F��1��$���5 �$)���(���9��

NN �$)���(���9��

RR �$)���(���9��

VH ��9����(��$)�

"�7"�:"�."�D"�T"�N"�U"�R"�66"�??" ��9����(��$)�

���(1�2���(1��+�$G�$0��(+5 +(+$

/�2�(**��(0$���(�5 �$)���(���9��

Page 129: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�����������>�+������������

����������� ��������� ��������� ���� �������� ��� �������� ����� �����������

�������� ��� ���������������!"��!�*1#�������������F������������ �����

���������������������������������������53�����������������B����������������

��������������������� ��������������������������������������0����30����)���#

����� ��� �� ������ ����#� �!�*,12#� ����� �������� ��������� � ����� �!�����

�������������������������� ��� ��B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F�!�*,12F

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(�*���*������ @M.@

(�*���*������ <.MM

(�*���*������ @

(�*���*������ @<

(�*���*����KK @

(�*���*����KK ;@

(�*���*������� <I

(�*���*������� <M

(�*���*�� =� @

(�*���*������ .

44��)�#�����������7�*��*#"!�!����,���""�0

������3*�S�!�!$����D?�����D?�����D%/

������!"��!�*$���?����?����%/

9�"�#������������� ����������!"��!�*1#��#���������������������������������B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F�!�*,1#��F�Z����3�! �!##*��,�!,����)��!��!�*�������

�D������������������������4 47777?��!"��!�*,��2*��!�*?�!����*�)��,

�D�����������������������2*��*,)"������2*��!"��!����1

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�A�!�*,12A

���� !��$%

&

����#?�77?� ?���/

Page 130: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

9$�I,���2N''/�N**/�N,,5-

DD���$�M�,��$�)(���(��$��+$��;�@C @:A CC�,��$����&*$,;

�)�2L���,��$2''/�**/�,,55

�(&��66�#���$�$+�$�$,����L���,#�66�$+,�-

$��$

�(&��66�#�+L���,�,��$�$+�$�$,#�66�$+,�-

8

L(�,�9$�I,���2�+��.0''/��+��.0**/��+��.0,,5

�(&��66�#�+�$��,�'�+&*F$��#-

��+�??�.0,,-

�(&��66�#�+�$��*(+���+&*F$��#-

��+�??�.0**-

�(&��66�#�+�$��2)(&�:,�9��5�'$���+&*F$��#-

��+�??�.0''-

8

�+��L���,��$2�+��''/��+��**/��+��,,5

DD������P���,��$���$�,��$�$+�$�$,����(�,�+9��(���$

DD������1$��:M+(1+��&�$�

�)�22''�6�����5�RR�2''�?�����55

������$�&�+�2����5-

�)�22**�6���5�RR�2**�?���55

������$�&�+�2����5-

�)�22,,�6�����5�RR�2,,�?�����55

������$�&�+�2����5-

�)�22**""B5�RR�2**""=5�RR�2**""C5�RR�2**""@@55

������)�2,,�?�2�����:�@55

���$�&�+�2����5-

DD�������)���$�*(+�������$F�&��'��+,���$�'$������,�L���F�$

DD������$L$+�'�F'�B/�1$���L$����$�0�'$��;

�)�2**�""�A5

�)�2,,�?����� 5

������$�&�+2����5-

�)�222''�T�B5�P"� 5�RR�2''�""�����55

������)�2,,�?����� 5

���$�&�+2����5-

8

DD������L���,�,��$

�$�&�+2��W�5-

8

Page 131: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������������������������ !��B�3*�S�!�!������!"��!�*��3*�S�!�!�������������

�������������E� ��� � ��� �������� �� �� ����� �����������#���������� ����

�������������#���������������� ����������3*�S�!�!�������������� �������������

���!�� ������������������������ ����������������������������������� !�������

�����������3*�S�!�!�� �������������#�3*�S�!�!���������������������B�����������

��������������������#�����������������(������3*�S�!�!#������� ��!�������F���

#������� �������������������������������������������������

%���������� ������������������������3*�S�!�!#�������������������� ������,��

�����-����!"��!�*������������� �������������������������������������������

������������!"��!�*E���'�� ����������������������������������������������������

�������" ��������� �����������������"�� ���B������������������������!����

�����������0�D30��\�=���������������00�����3�00����'����� �����#�������3000

����."����������00�����3�00���� �������������������!�*,1#���

4� ������������� =L.:)%*�.�������������������!"��!�*#����������������!

����������������#����#����������������� ������ !����6��'�������������� ��

,������ �������������-���������������� ���B

���*���!7��) 9*����

���*�� ���2��) 9*����

���*��$��)�5��3��%�7*!���) 9*������

���!"����!�*�*��*�*�

���*���!7��) 9*����

���*�� ���2��) 9*����

���*��$��)�5��3��%�7*!���) 9*������

K!�*�*��*�*���,��!"��

�!"��!�*1#��� ������������������ ����������������� ������� ��������AA

�����"�����������������������������������

�'������������������������ ������������������������ � ���������������������

�����������������������������������������AA����������D�������������������#

��������#���������#��� ���������� ���������D��������'��������� �������

����������� ����#�������������������������������� ���������������������

������� ��������������������AA���������

Page 132: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��@��)��������

S�� �������� ���� ,�V*��� ����������������� ������ ���� ��K�� ���������

�������������������� ���������������F����

��������������AA�����������#���#2!����� ����������������������������

����!��������#����������G��������������������!�� �����������������������������

�������������� �����K���������������F�����D��"�!�#�������������D�����������!

�� ������������������ ����������������������������������������� �����

����

������������#������'����������������������������������������� ��������

��������������F����� ����F������� ���������������������� �����S��������

����������������������������,�����������������������������������-��������������

������������������ ����

���,�V*��� ����������������K����������������� ������������� ������������ �!

� ������#����������������������� ���������E�������������������#����� ������������

�������,�V*��������������������B

,�V*���+�!��!9"*��! *-/

,�V*���$+�7�*�,�*#���*�-%/

6��� ��� ���� �"�� ���� �� ,�V*��� ��� ��������� �� ����� ����� ����������� ���

����������B

#2!���#/

��� �/

��)9"*���/

�"�!����/

#2!���#!��[email protected]/

������!��THU/

#2!���D#���/

�����D�����G��!��/

,�V*��$#% 44�@�97��*��������

,�V*��$�% 44�L����;<59���,7,�*

,�V*��$�% 44�I����;<59���,7,�*

,�V*��$�% 44�L����;<59���,7,�*

,�V*��$#!��% 44�@.8����*��2*�*:#*�����P

,�V*��$�!��% 44�<.����;<59���,7,�*

,�V*��$#���% 44�<����L

,�V*��$����% 44�L����;<59���,7,�*

44��7�*�,�V*,

,�V*��$���% 44�L����;<59���,7,�*

,�V*��$#2!�% 44�@�97��*��������

,�V*��$�"�!�% 44�L����;<59���,7,�*

,�V*��$��)9"*% 44�I����;<59���,7,�*

Page 133: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�� ����������������������� ����������B

,��)#��,�S#*""S,

&

��� ��!"/

��)9"* ��!"/

#2!� ,�!"T<.U/

'/

�����������,�V*��$,��)#��,�S#*""S,%�������������/3�,�����"������������ ������

������ ��������������������������������#������������2!�����������#�����!����

��)9"* ���������������30!��������#� ��������������������#�������#���������

����������������

,�V*������� ���������������������������������������������������������������������

,�V*��� ��������������������� ��������� ����� ������������� �� ������ ����� ��

���������#����"�� ��#���������������������� �������������������� ���

������ �����"������E������������� ��������K�������� �����������#��������

�������������������� ������

������� �������,�V*�����������������#������"������������������� ����������

���������������������� ������������������� ����������������������!�" �����

������ ���������������������#��������"�� ����,����#!�������-#����������������

������� ��� ��� ���� ������� �� ���� ���� ���� ��� � ��������� ���� �����������

��� ���������������

Page 134: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������

� (������ ����������� ���������� � �������������� ��������������������

��������������

� ����������������������������������!"��!�*��������(��\

�����!"��!�*$����77?����� ?�������%

&

44������>!"��!�*��2*��!�*�*��*�*��!##�����3�����2*

44������0*""5E��0���)"*,

���$$77�+������%�OO�$77�-������%%

������*�)���$�����%/

���$$ �+������%�OO�$ �-������%%

������*�)���$�����%/

���$$���+����KK%�OO�$���-����KK%%

������*�)���$�����%/

���$ GGL�OO� GGX�OO� GGM�OO� GG@@

NN�$���-�$���KK�5�@%%%

�*�)��� $�����%/

44����������2*� ���2��,��*9�)!�7�!����2*�7*!���,�����,�9"*

44������*�*�"7�97�L?�0*�2!�*�!�"*!��7*!�1

���$ �GG�<%

&

���$���-�������%

������*�)��$�����%/

���$$77�J�L%�PG�.%

��������$���-�������%

���*�)��$�����%/

'

44�������!"����!�*

�*�)��$� =�%/

'

� (������ �����������������������B

02�"*�$#�G�3*�#2!�$%�PG�FRF%

����"������\

� +������!"��!�*1#�����������������������������������������������������00�,���

K�-���������&������������/D�/��� �������$13�,��������������������-����

�������������������������8������������;���������������%��#���������������

�����K�������������2�%94����200������� �����E�������������������������

�00�����9� ����200���������� ���������00������������9� ������ �����

Page 135: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

( ������ )���� �������

-������� !������ �������������������������� ���

���������� 4������ ������������������ ���

:���! �������������������������������������������� �%�

7���������� 4����� !�������! ���� �%(

;������!�� !������� ������������������������ �%5

�'����!�! �������������������������������������� �(&

Page 136: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������ ���������

%������������� ���/#���������������������������������������������������

�� ������������������������������

�AA� �������F���!�������,��-� ��������#����������� ������������ ���������

�AA'������������������������������������F���!��������B��������������������

������� ���������������,���� �����-E���������������������������������

����� ������������������� ������������ ����������������������������

�����������������������%���������������� ����#�������������������������������

��������������AA������������������� ������ ����

����������������������������#��AA����������������������������������� �����

���� ���#��AA������������������������������������ ������� ���������������

������� ������������������������ ���� �������"�������������������� ���

�������������������

��� �������� �� ��������� ������#��AA� ��������� ����� �� ���������

������������������������!�������� ���� �����������������������������

��������������������������������������������&�*�����)�= =%9#���������

�������������������� �������������������������"����������������������

���� ���� ,����� ���-����� ���� ������� ������ ��� ������������ �����

����������,;� �-������������������,���������%**#�7.=)�=+-�

L������������������������������������������ ������������������#� ����

����� ���� ����� ���� ������ ���#� ��� �������������� �������#

���������������������������������

��� �������� ��� ���� ��� ��� ���� ���� �� ���� ��������� �������� � !

���B

◆ 7����������������������� !���������E�������F�����������G������

���� ������� ��� ������� ��� ���� �������!������ ���������.���� �� ���� ������

����������������������������������������������������������������������

◆ .�����������������������������������������������

◆ .���������������������� ���������� �����������������������������������

����"�������������������������������������������������������L����������

������������������������������������

◆ L������������������������������

�AA� ��������������������������������������������F���������%����������������

��������� ��������������D��" �����������������������������D���� ���

����������#���������������������� ������������������������&'��%��� ���

����������������������������G���������������� �������������

.�����AA� ���������������� !��� �������� ��������#� �������#� �����������

�� ������������������������&���������� !���������������������������

��������� �� ������ �������#� ������ ��������#� � ��������� ���� ������� �� ���

������#������ ��������������

Page 137: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������������������������������������������������������10������������E������

��#���������������������������������������������������������������

L������������#���������#�������������������������#��AA�������������"������

����������������������������"��������������������������������������������AA

���� �������3������������������������������������#����������������� ��

��������������������

�AA� ����������������������������������� �����"������������ ����

������������������������������������������ ���'��������������� ���

��������������#������������#���������������������������#���������!��������

�����

Page 138: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����������� #�������

�)

���������������������������������������B

��� $+*:��*,,���-%

+,�!�* *��@-

T*",*

+,�!�* *��<-U

����G������������������������������*",*����������� ������

����" ������������������������" �����#������������������������#�������������

������������" ������� ������������������������������" ���������������

������#�������#������������ ���'���������������������������������

�����������������F���������������������*",*���������������������������� ���

���������������������������������������F�������������*",*#������������� ���!

��������������������&'���� �����E��������������������������������������

)��"�� ��#������3*�#2!�� ����� ���� ������ FRF� ��� ����������#����������

�����"������B

���$$#�G�3*�#2!�$%%�GG�FRF%

&

4D�����,2����3�! �*:*#)�����D4

#�)��++��A���3�! ��*� ��!���3C�A�++�*��"/

�*�)��$.%/

'

S��������������������������������� ������*",*����������������� ��B

���$ �GG�<%

���$$77�JL%�PG�.%

���$���-�������%

�*�)��$�����%/

(��������������� ��!��������������\����������������)������%94��������������

�������� �����%94��������������������������3�#��������������

.����������������#������������������F������ �������������,�-#�������������������

������������������ ���������������������"�� ��#����������������������������������

����������#� ��� �� ������� ���������E� �� �� ���� ���������� ���������#� &'#� ��

���������

S����������������������������������B

����$ �GG�<%

&

���$$77�JL%�PG�.%

&

���$���-�������%

Page 139: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�*�)��$�����%/

'

'

����������������������������� �� ���� ������������������ �� ������� ������

������������L������� ���!������������������������� ������������������

������������

���$ �GG�<%

���$$77�JL%�PG�.%

���$���-�������%

�*�)��$�����%/

*",*

�*�)��$� =�%/ 44 �!"����!�*

.������������ ��������������������������������������������������*",*#�������

���������� ����������������������&'�����������������"�� ��#�����*",*

������������������#��������������� ����������������������� �����������������

������������������ ����������#����������B

���$ �GG�<%

&

���$$77�JL%�PG�.%

���$���-�������%

�*�)��$�����%/

'

*",*

�*�)��$� =�%/ 44 �!"����!�*

*�����#��������������������� ��������������]*",*���������������B

���$���GG�@%

#�)��++�A����!7A�++�*��"/

*",*

���$���GG�<%

#�)��++�A�)*,�!7A�++�*��"/

*",*

���$���GG�;%

#�)��++�A�*��*,�!7A�++�*��"/

*",*

���$���GG�L%

#�)��++�A�2)�,�!7A�++�*��"/

*",*

���$���GG�H%

#�)��++�A����!7A�++�*��"/

*",*

���$���GG�X%

#�)��++�A�!�)��!7A�++�*��"/

*",*

���$���GG�.%

Page 140: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

#�)��++�A�)��!7A�++�*��"/

*",*

#�)��++�A�����A�++�*��"/

��������������!������������� �������������������������������������������������

���� ��� ��������������� ������������ *",*� ���������%�� ��� ������#� ��� ��� ��� ��

�����������������������������#��"��������������������G�������� �����������������

����0D5�����#����������*",*����� ��������������C��������������'���������

������������ ���������� �������������������AA��������������������������������

���������B����" ���������,0��#2�������������� ������������������#� �����/��

Page 141: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

/����

��� ����������������������������������������������� �������������������

����AA��6��#��� ����������������"�� ��#��� ���������������������������������

�� ���

��������������� ������������02�"*�� B

#�)��++�A��*,,� ��= �����,�!��?�FRF5 ��= �����R)���A/

02�"*�$$#�G�3*�#2!�$%%�PG�FRF%

&

44�#!""�!""��2*����5"*�*"��)�#����,���

44��2*����3�!

#�)��++�A��*,,� ��= �����,�!��?�FRF5 ��= �����R)���A/

'

9�"�#����'�������G�������������������������������� B

����$�#�)��++�A��*,,� ��= �����,�!��?�FRF5 ��= �����R)���A?

#�G�3*�#2!�$%/

#�PG�FRF/

#�)��++�A��*,,� ��= �����,�!��?�FRF5 ��= �����R)���A?

#�G�3*�#2!�$%/

�����%

&

44�#!""�!""��2*����5"*�*"��)�#����,�����2*����3�!

'

9�������#������������� #�����������������������" ������B

���� $+*:��@-/+*:��<-/+*:��;-%

���������������" ����������,�����������-��� ������������������������'�

������#������������"�� �������#������������������" ������������ ����

������������!�� ����������" ��������S������������������������������

�������#�)�����������������3*�#2!�������������������" ���������#�������!

����#������� ������������������������������������������������������ #���'�

�����

*�����#�����������������������������������502�"*��������B

��

&

#�)��++�A��*,,� ��= �����,�!��?�FRF5 ��= �����R)���A/

#�G�3*�#2!�$%/

'�02�"*�$$#�G�3*�#2!�$%%�P�G�FRF%/

����G���������������������������������������������02�"*�� ��� ��� ��������

�������#����� ������������������������ ���� � !��������������������

��������� � ���������������� ���������������������� ��������� �������� �

Page 142: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

������������������������������������ ���� !������������� �����������������

������������������� �

�����502�"*��������������� �����G���������������������������������B�����

�������������� � �������������������������������#������������������FRF��������

�����G�������������������������FRF���������� ����������

���������#������� ��������������� ������������������ ��������#�����������

������������������������L������#������#����������������� ��������������

���������� ��� ���� � � ������ ����������� ���� ������ �� ��������� ��� ����� ��

�������#���� ��� ������������ ��������������������� ��"��� ������ �� ����������

�����������������������������!�!������ ���02�"*�� ������������������������

������ ��� �"������ �������� ,����� �������� FRF� �� G���-� ������� ��� ��]02�"*

������������ ������������� ����������"�������������������#����"�� ��

����������������������� ������

��� ���������� ������� ������02�"*����� ���� ��������������#�����02�"*� ����������

��������������������������������������� �����������������������������������B

���� $+*:��@-/+*:��<-/+*:��;-%

+,�!�* *��-

�����+*:��@-�����������������������������" ������E�+*:��<-��������" ����������

���������� ����������E�����+*:��;-���������!������������������� �� ������

�G����������B

+*:��@-/

02�"*� $+*:��<-%

&

+,�!�* *��-

+*:��;-/

'

����"�� ����������������#�����)*������������������������������������������

���"��������������� E�#�����)*����������������������"���������

��502�"*� ��� ������������ ��� ��� �G����� ������� �� �� ��� �������� ����� ���

��������������������������������������������#�����������������#������������

�������#�������������502�"*������� ������9��������������502�"*�� �����

����������������������������

������02�"*�� ��� ��������� �����������������������������������������"��

�������� �� ��������������� �������������������� '���� ��������������

�����������������" �����������������������������������������������" ��!

������������������������������� ���������������� ��� ���

)������#����������� ������������������������������������������������ �������#

������#� ��� ������� �� ��� ������� ������������� ������ �� ���� ���������

���������B

Page 143: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����$�����G./�+@..�NN�!��@T�U/�66%

����$����\G./\+@..�NN�!��<T\U/�66%

���$!��@T�U�GG�!��<T\U%

�*�)��$�%/

��������������������������������������������� �������������������!��@�����

���������������!��<#��� ������������������������ ������� ����������� ����0#000

� �#�����������#����������� ����������������#������������������������ �

��������������������������'���������C����!���'��������

9���������������������������������������������\���� ����������������������,����-

�" ������������������ �� ������������ �����������AA�

Page 144: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

?������������#����� ��������

������������������������������������������������� ����AA��������������

����� ��#��������B

◆ 9�*!E

◆ #�����)*

◆ �*�)��

◆ 3���

S������������������������"������ �������������������������������������

� ��������������� ���9�*!E�����#�����)*�����������#�����������������#�����

��������� ���

#���

S��������������9�*!E��������������"������ ������� ����������#����'�����������

�������������������������������������������� ��,������������ �������������

�" �����-B

#2!��!��[email protected]/

%�������������������������������������������������)���#������������������#

��� ����������������������"�������� ���������������������FC.F��������B

����$����,)9�G�./�,)9�+�@./�,)966%

&

���$!��T,)9U�GG�FC.F%

9�*!E/

#�)��++�!��T,)9U�++�*��"/

'

(����9�*!E�������������#������������������������"����������� ���������

������������������������������������������� '���� ���������������9�*!E

������������"������������������ E��������� �����������#���������������

�������� ���������������9�*!E������������ ��S����������9�*!E�����������

������� ��� �����������������������,0��#2����������#���������������"���������

��������

S����������#�����)*������ ������������������������� ���G�����#���������

�"��� ���� � � ����������(�� ���� ���������� #�����)*� ������ ���� ����� ���� ���

������ ����������������������%����#���������������������������������������

��������FC�F�������������#�����������������������������#���� �������������#

������ ������

,)9�G�5@/

02�"*�$,)9�+�@.%

Page 145: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

&

,)966/

���$!��T,)9U�GG�FC�F%

#�����)*/

#�)��++�!��T,)9U�++�*��"/

'

(���� #�����)*� ��� ���������#� ��� ������� ����� �� ��� ������ �� ���� � '�

����������" ������#���������������������� #����������������� ����������

������������������������#�������"������������� �������#�����)*�����������

������������� ������������

S������������������������������"�� ���������������������������#�����)*�

&�������#�����)*�������� ������������������������ ��#� �����������������

� !����������������� ������������������� ��� ��������������������#����,)9

������������������������#�)��D�������������������� ��������������D���

�������������������������������������FC�F������������%������������ ��������

�������

����

�������������������������������3����������������������������������������

����������%�������� �������� ���� ���� ����������3������� ���� ����������

��������������������!�������������������������������������� ���

��������������������������������������3�������������������� ����������

�����������������������������������������������������L�����3���������

���������E�������������������������� �������������������������6����#

������������������������������������ � ���

���9�*!E�������������������"���������� ��������������������������������

�������������� ���*�)���������������������������������������������

��������������������������������������������������������(����� ��������������

�������������� #������������������������������������������������

� ����� ��������������������������� ���������������������������������

6����������"�� ����������������������3�����(������������������������B

#2!��!��@[email protected]/

#2!��!��<[email protected]/

%������ ���� ������������������ ������������������!��������(������� ��������

�����������!��<�����������"��������!��@�������������"���

����$�����G./�+@..�NN�!��@T�U/�66%

&

����$����\G./\+@..�NN�!��<T\U/\66%

&

���$!��@T�U�GG�!��<T\U%

Page 146: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

3���� !�#2/

'

'

#�)��++�A��� !�#2���)��A�++�*��"/

3����*��/

!�#28�#�)��++�A�!�#2���)���A�++�!��@T�U%�++�*��"/

*��8 / 44��)""�,�!�* *��

���3����������������������������������������������������������3��������������

S������ ���������������3�������������� ��������� ���� ��� ���������������

C���������� �'#� ������������� ������������������AA��� ������" ������� ��

��������������������������� ���/�

3����������������������������������������������������������� ���������� !

������������������������������������������#�������3�������� �����������������

�� ���� � ������� ���� ����� �������������� ���� ���� � ������������� ����#

������������� ���������������

Page 147: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����3���� ���������

%���'���������� ��������#��AA� �������������������������������� ����������

���������!�������������6����������,0��#2��� �������������������111*",*111��������!

����������������������������������� ���

,0��#2$��%

&

#!,*�@8 #�)��++�A����!7A�++�*��"/

9�*!E/

#!,*�<8 #�)��++�A�)*,�!7A�++�*��"/

9�*!E/

#!,*�;8 #�)��++�A�*��*,�!7A�++�*��"/

9�*!E/

#!,*�L8 #�)��++�A�2)�,�!7A�++�*��"/

9�*!E/

#!,*�H8 #�)��++�A����!7A�++�*��"/

9�*!E/

#!,*�X8 #�)��++�A�!�)��!7A�++�*��"/

9�*!E/

#!,*�.8 #�)��++�A�)��!7A�++�*��"/

9�*!E/

�*�!)"�8 #�)��++�A�����A�++�*��"/

9�*!E/

'

."������������ � �����������#��� ��������� ������������ ���������������� ��

������������������������������������ �������� ��#2!���.�����������" �����

���������������������������������������������������#�����������F������������#!,*

����������"�������� ���#!,*��������������������������%���#!,*��" �����������

������,0��#2����������������������G���

,0��#2� ����AA� ����������� ����� �����������������������(��������� ��

������������������������ ���#��"��������������������������������������������

����� �����L���������������������#��"��������������� ���������������������

�������#������������������������� ��������������������������#!,*��������

)����������#�������������������9�*!E��������������������������������F�����

��#!,*���������������������������������������������,0��#2�����#�������������

������#!,*������#�������"�������

��������"�� �������#������������9�*!E��������������������������������������������

;#��������������������������,0��#2���������������������������������������

��������� ���(��������� ������ �������������������� ������������9�*!E

��������������,0��#2������� ���O

����������9�*!E������,0��#2����������#�������������������������������� ������

���������,0��#2������������#�����)*��������� �����,0��#2E����������������������

�������,0��#2����������������������������� �

����*�!)"������� ���"������������� ����"������� ��������� ���� ����������

�����������������S������������������������������F�������*�!)"���������9�*!E�

Page 148: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����������������*�!)"���������� ������� ��������������������*�!)"�������,0��#2

���������� ,����-���*�!)"������������������ �����,0��#2� ���������#����� ��

�������� �����������������

��������������������������������#!,*������������� �������������*�!)"����������

�"������#�����������������������������*�!)"�����������������9�*!E�������������

�����������S�����������,0��#2������������������ ����%�#!,*���*�!)"����������

������������������,0��#2�����������������

���������������������������� ���#�\) �,� �1#��#����������������

������������������������������������������������������������������������������B

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

�D

�D������F\) �,� �1#��F�Z����3�! ��*�*!�*�"7�!##*��,�!,����)��!

�D������������������������#2!�!#�*��!����*,�,��������9*��3�!��) 9*�

�D����������������������������2*��!�3*�@5K�����!��!7�����2*�0**E1

�D

� DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�+#,����-

���� !��$%

&

����#/

#�)��++�A���*��!�,��3"*5��3����) 9*�8�A/

02�"*�$$#�G�3*�#2!�$%%�PG���%

&

���$$#�GG�FC�F%�OO�$#�GG�FC�F%%

#�����)*/

���$$#�+�F.F%�OO�$#�-�FMF%%

&

#�)��++

A��)� ),��*��*��!�,��3"*5��3����) 9*�A�++�*��"/

#�)��++�A���*��!��) 9*�8�A/

#�����)*/

'

,0��#2$#%

&

#!,*�FIF8

#!,*�FMF8�#�)��++�A�) 9*����������!�3*�@5K�A��++�*��"/

��9�*!E/

Page 149: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

,$)�&��H��9(�(�)�+���-

���$�3@3H��(&��66�#(+,�'�#�66�$+,�-

��F�$�M-

���$�3A3H��(&��66�#�&$�,�'�#�66�$+,�-

��F�$�M-

���$�3<3H��(&��66�#�$,+$�,�'�#�66�$+,�-

��F�$�M-

���$�3B3H��(&��66�#��&��,�'�#�66�$+,�-

��F�$�M-

���$�3�3H��(&��66�#���,�'�#�66�$+,�-

��F�$�M-

���$�3=3H��(&��66�#��&�,�'�#�66�$+,�-

��F�$�M-

���$�3J3H��(&��66�#&+,�'�#�66�$+,�-

��F�$�M-

8

�(&��66�#�+�$����+&*F$�H�#-

8

9(�(��$�&�++(1-

)�+���H

�(&��66�#`$�(��+L���,/�0�(9��*��$�*�+���+9;;;�#�66�$+,�-

�$�&�++(1H

�$�&�+� -

8

%�����������������*��+��������#������������ � ���������������������������

��� ������������������������(������������ ������=. L=9#���������234+3-����

������������234�3-���������������������������������������#������� ���

�����������������������(+��+&$����������������� �������� ��������������

������������������������������������������K�����#�������������������������

������������ �������� �

)������#������������1������������������������������������������������������ ��

,$)�&��������,�����������������������������������1����-��������9(�(���������

�����������������)�+������������������ ����������� �����K���������������

%���������1������������#�������9(�(�����������F�� ��������)�+���������E�����

������������������������������� ���������������������������������9(�(�#������'�

�����������(�������������� ��������������������� � ���#���������������

��� �����������������������,������ �������������-B

�+�$������+9�$:,�9���+&*F$�H��

���,�'

�+�$����+&*F$�H��

��&��,�'

�+�$����+&*F$�H��

�&*F$��+(���+���+9$�@:J

�+�$����+&*F$�H��

`$�(� �+L���,/�0�(9��*� �$�*�+���+9;;;

Page 150: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������

� L���������������������� ����#���������������� ��

� (������ ��������� ������������ �������������������������������������������

����������������������������������������������4�� ��������������������

��������������� ������������������������������������������D1�

� (������ ��������#�������30�������3������������������������!����� �������

��������� ����������������� ��������������#������!!��, ������������������

����B������������������������-

Page 151: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

* ���&� ������

:����� !������! ���������������������������� �(�

-������������$���� ����� �"��!������ �((

+"����� !���������������� ������������ �(5

*����!!� ���������� ������������������������ �,%

*���"!��$�������! �������������������������� �,�

-�����!� ��� $����! ���������������������� ��&

�'����!�! �������������������������������������� ���

Page 152: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

/������ ����������

������ ������F�������� ������ ��� ������������������������������������

��������� ����� ��� ������� �������*������ ������ ��� ������ ��� �������� ���������#

������������ �������%��������������������������������������������������#����

���������������� ������������������������� �����������������������������

�������������������������#��������#��������,9�������������AA���������*�����,���

��� ����3-� ������ ��� ������������������ ������������� �� �������������

������� ������ ���� ���� ���� ����� ��������� ���������� G������ ���� ������ ����

������������������������ ���������� ����!���������� ���������������!

��������� ������� �������'������� �� ���� ��� �������� ����4�'�� ������ ����

��������������� ����� *������� �������������� ������ ������������������

�����#���������������������������-

����������� ���� ��������������������������������������������� ������

������������������������ ����������������������#���������������������������,��!

�������-�������� ��� �������� ���������� ������� ������ �� ����� ��� �� �#

�������������������������������������������������������������������� ��

������������������������������������ �����!������������������������������

�����������������������������������������$!�������������������������

6��� ��� ��� �"�� ��� �� �� �������� ���������� ���������� �� ����� �� �����

��������������������� �B

,��)#�����*

&

��� :/

��)9"* 7/

���*�D�*:�/

'/

�*:������� ���������������F�������� �����*��*��'����������������������������

�������B

���*����,�?�,*#���/

(����������������������������������������������B

���,�1: G�H/

���,�17 G�;L1KI/

,*#���1: G�X/

,*#���17 G�LH1IM/

������������������������������������������������������������������� ����

����������������B

���,�1�*:��G�N,*#���/

%�������������������������#��*:�������������������������������������������

��������'���������������������������������B

Page 153: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���,�1: 44�H

���,�17 44�;L1KI

,*#���1: 44�X

,*#���17 44�LH1IM

���,�1�*:�5-: 44�X

���,�1�*:�5-7 44�LH1IM

,*#���1�*:� 44� ���*�*� ��!�*��!")*?

44�,2�)"��9*�,*������=��1

�� ����������������������������������� ��������������������� �����*B

���*�D�����G�N���,�/

9��������������������������������������������������������� �����������B

����5-: 44�H

����5-7 44�;L1KI

����5-�*:�5-: 44�X

����5-�*:�5-7 44�LH1IM

�������'��������������������� �������� �������B

: H

7 ;L1KI

�*:�

"�"�

%��&$�

: X

7 LH1IM

�*:�

�*+,,

� �%"

Page 154: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�������3��)�������� �&���

�&����)� �����)���

%����'�������#��������������������������������������� ���������������������

���AA'��������������� ��������#������������������������������ �������B

!)�� *:�*��

,�!��# �*3�,�*�

��������������#��7�*�*�#��������������������������������������� �����������

�� ��"������7�*�*������������������������������AA'��������������� �����������

���������������������������������������������� ��� �������������������"������

�� ���

�7�*�*�# ���������������������������������������� ��#���������������������� � �

���������������� ������ �7�*�*�� ��� �������� �� ��� ��� ������ ������ ���� ����

������������ ����������� ��� ��������������������

%��������������� �����������������������������! ������������(����������

������������������� �����������B

�7�*�*����)9"*����#*/

��������������������������������� �B

���#* #�,�S���#*/

���#* ,*""S���#*/

���3������� �&��� ��)��������

�����������"�� �������������������� � �����������#� ��� �#����� ��

����������������(����������������������� ��"�������������*��'������

��� ���,����������������-�������������������,��#ES�7�*B

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

'/

��������������������������������� �!���������������������7�*�*�B

�7�*�*��,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

��)9"* #�,�S���#*/

Page 155: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

'����/

������������#������������������������������������������������������ ���,��#ES�7�*

����������������������������������������� ��,��#ES�7�*��9���������������

�����������������������������������������B

�������* @?���* </

L�������������!�����������������������������������������������������������

��� ��B

�7�*�*��,��)#�����*

&

��� :/

��)9"* 7/

���* D�*:�/

'�K�/

�K����������������� ��� ����������������������� �����*�� ������������������

����������������������� ����#�����������������������������������������B

�K�����,�?�,*#���?�D�����G�N���,�/

��������������������������������������������� �����������������������������

������������

� ����������������� �� �������������������� ���������������� ��� �� ����� �

��������� ������������������������������������������� ������������������'�

�� �B

�7�*�*��,��)#�����*

&

��� :/

��)9"* 7/

���* D�*:�/

'�K�?� D��K�/

������������� ���������������������������� ��������������������#�����������

�������������������'���� ���������������������������������������������

�����������B

�K�� ��,�/

��K�������G�N��,�/

.�����&��&��

%��� ��"��������7�*�*���������������������������������B

�7�*�*��#2!��!��!7S�7�*T<HXU/

Page 156: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

6��#�!��!7S�7�*����������������������������������315���������E�����������

�� �� �� � ��������� �������!����!�!315!���������� ��� ���� ��� ����� �� ������

��������������315���������B

!��!7S�7�*�!@S<HX�G�A�2�**��2�),!����)#!�,?�!�3������)���,) A/

�������������������������������B

#�)��++�!@S<HXTKU�++�*��"/

�������������������F2F�

������������� ��� �&����)� ������

%������������7�*�*����������� �����������#��������B

�7�*�*��#2!��D#2!����/

9��#2!�������������������#2!��D������������������������������������ �����B

#2!�����#���@?�#���</

�������� ��������������������������������������������������������������

����������AA��)��"�� ��#��������7�*�*���������� � ��������� ����

�� ���������� ������� �������� ��� ���� �������� ����#� ���� #2!�@� ���� #2!�<� ��

�������� �����B

(�*���*���B� �#2!��D

�7�*�*��#2!��D�#2!����/

��B� #2!�@/

#2!���� #2!�</

���� ���� ��"�� ����������� �" ��� ���� ���������� �������� ������ ������������ ��

�� ���������������� � ������������������� ��������� ����������7�*�*�B

44�,)9,���)�*,���8�#2!��D#2!�@?�#2!�</

��B� �#2!�@?�#2!�</

44�#���*#�"7��*���*��!,�#2!��D#2!�@?�D#2!�</

#2!�����#2!�@?�#2!�</

����#����&

�7�*�*������������������� ������� ������ ����B

�7�*�*��"��3����/

��������!9"*S���/

����!9"*S��������������������������/3!�����52!�������������9������������������

������������ �� ������ ����� ����������� �� ��52!���� ������� ��������������

�������������������������������������������������'��(�������������

���������������'��L9�<���������

Page 157: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

:&�������������������

1�������� ��� )��������

L �����#�������������������������������������������� ������������������

�������������������������������������������� ������������� �����%�����������

��������� �������� ������������������"������������������������������ �������

��������������������������� ������

������ �������������������������������#��C����'#�������������������

�� ����������6����#� ����� ����������� ��� �� ��"��� ������#� ���������� ��

�� ������������������������������������������������������������������������

������������#����������������������������������������������������#���������

�����������������

(���������������������������������������#��������������������� ���!

��#���� ������������� ����������� ������������������*0������*"*�*� ����

���AA�#�����������������������G����������������������������������*����#

���� ��� ��������������������������������������������������#,��"�9�

����*0������*"*�*� ������������ ���������������������������#���������

���������������������������������6����#�����'�������������������������

�������������������#����'���������������������������������������������

�*0������*"*�*�� ������������������������,����������������������#,��"�9-B

!""�# �������� ���������� ��������������������#���������������������

���� ������� ���������AA�������������������������

#!""�# ���� ������������ !""�##������������� ����� �������������������

������������������������������������K���

�*!""�# �������������"������������������������ !""�#��#!""�#��������������

������� ���������� ����������K�#������� ���������������������������

��** ���������������������������������������������������������� �

)����� ��� ����������������� ����������������������#�������� ����2�

4�����������������������������������������������������������������'�����

������������������������������������������� ��������������������������������

��������������������B

◆ ����� ����� ��� ���������� ��� ����� ������ ���E� ���� ��������

������������������������������������������������������������

�����������������������������������������������������������

◆ �� ��"�� ������������������� ���� ��� ����� ����� ����� �� ����������� ���

��"����� �������������������,����1�3���������-�� �������������������

��������"�����1�3����������������������������#����������������������

��������������������'�� ����� ���������������������������������

���������"������������!�������������������

Page 158: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

◆ *������������������#����" ����������������������������������� ����������

����������������������������)�������!���������������������������������

��������#���������������.�����3����������������������������������

�������������������������&���������������������������������������� �������#

�����#������������" ������� ���������*0������*"*�*�

?������������������

�*0� �����*"*�*� ��� �����AA� � ��������� ����� �� ������ ������ ��������

!""�#�������**��S���������������� !""�#�������**#������*0������*"*�*���������

���������������

����*0� �������������������������������������������������������B

+���-�G��*0�+�7�*-$+�����!"��!")*-%/

+���-�G��*0�+�7�*-T+,�V*-U/

�������������������������������������������������������� �������������������������

������� ���������"�� ������������� ������������������������������ ����������

����������������������� ������������������� ����������������F��������������

�� ����*0������������� ���������������!����������������������������� ����

��������������������� ��� ���������������� ��� ������������������!���������

����������������������������������������������������������#��*0������

��9L**� ����#����������������������� ����������������������������

�����������

���������������������*"*�*� ������������B

�*"*�*�+���-/

�*"*�*�TU�+���-/

�������������������� ���� ��������������� �����+���-����������� �������

�������������*0��L������� ������G��������������������������������������������

�������������������������������������������������� ����������������������*0TU�

6�������� ���������������������������������*0������*"*�*B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

����D����@?�D����<?�D����;/

44�!""�#!�*� * ��7������0���������)!"����*3*�,

44�!���!��!��!7����<.����*3*�,

����@�G��*0�����$H%/

Page 159: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�0��A�"�+$1�2�+�5�2=5-

�)�22�0��<�"�+$1��+��A !5�""��W��5

�(&��66�#�(&�,+3�����(���$�����'#�66�$+,�-

$��$

.�0��<�"�A�-

DD������0��'�)������1(��+�$9$��L��&$�

�(&��66�#�+�$9$��@H�#�66�.�0��@�66�$+,�-

�(&��66�#�+�$9$��AH�#�66�.�0��A�66�$+,�-

�(&��66�#�+�$9$��<H�#�66�.�0��<�66�$+,�-

DD�,$���(���$�*$*(�'��������<�0(�+�$��

,$�$�$�2�0��@5-

,$�$�$� �0��A-

,$�$�$��!��0��<-

8

������ ���������������B

=

A�

������������������������������������!������������������������� ����������

�0��@/��0��A������0��<�

����������� �����������

*��'�����������������������������������B

�'0$,$)����&���+(,$

�+� G-

,(&F�$ '-

+(,$ .+$G�-

8����-

=������������������������������������������������'0$,$)�������������#� ���!

������������� ��� �������� ����������������������� ��+(,$�

*��'�������������������� ��������������������B

�����.0��@-

0��@�"��+$1�����-

%��������#�0��@� ��������������������������������������� ���������������

���'�������������������������������������#����������������������#

Page 160: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����������9L**������@�� ��������������������� �����������������������

������B

���$$���@�G��*0��K�%�GG��=��%

&

#�)��++�A�* ��7�!""�#!�����*����A�++�*��"/

*:��$.%/ 44��:������3�!

'

44��* ��7�,)##*,,�)""7�!""�#!�*�

S�'������������ ��� ��������*:�����������������������������������#,��"�9����

��������������� ������������������������������������������������ ������

������������������`�����������������������������������

5������� �����������&

����������������������������� ����AA� ����� ��� ��������������

�������������������������� ���������������������������F����

%���������������������� ����������������������AA� �������������

�������������������������������������������������G������)�����������

������������������������������������������������������������������ �����

L������������ ���������������� ����������������������E����������������

�������������������#��� ������������������ �����������������

��� ��� ��'�� �����G������� ���������� �����������!������������������� ���

�����*"*�*#�������������������������������������������� �#�����

����� ���� ���� �� ���"�������� ���� ������ ���� �������������� ���� ������

��������������������������������#�������������������� ��������������

���������������� �����������������������������������������������"������

������������������������������������������!����4

)��������������������������������� ���#�������������������� ��!

�����������*"*�*���������������������������������������������� ������������

��������@�������������������������������������������������*0#����������

������������������������ ���������������B

�*"*�*����@/

+�������������������������������������������������������������#��

�"�� ���������������������������������"�������������� �������������������AA

�����������������������������������*0���������� �������*"*�*B������������

����������������#������������ ����#���������!)��S������� ����#������������AA�

5����������&���������A���

�����AA� ������ ����������� �����������*0� ����� ������� ����� ���� ��������

������������������������� ���������������������������� ��� ��������

!)��S������������������������� ����!)�����1#��B

Page 161: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$�6*$*(�'?

�'0$,$)����&���+(,$

�+� G-

,(&F�$ '-

+(,$ .+$G�-

8����-

�+��*��+25

DD����(���$�+(,$�0(�+�$�/�*$*(�'�)�$$,�1�$+

DD�0(�+�$��9($��(&��()���(0$

�&�(I0��6����?�0��@2+$1�����5-

0��@:?G�"��- DD���

0��@:?'�"�<;@B- DD���

�&�(I0��6����?�0��A2+$1������A !5- DD������

0��A7"@ - DD������

DD�0��@�*$*(�'�,$���(���$,��$�$

8

��� ������������� ����������������������������� ���+$1���������#���������

�� ������������� ����� ������������������ ��������������"������ ����*��+

���������9���������&�(I0������'������������������0��A��������������!��������

������%��#�������'�������������������0��A#���������������������� ������

:&��������������)� ����������

9������������������������������������������������������������������

������� �������� ���� ���#� ���� ��� ������������ ���� �������� �� ��+(,$� ,����

�'0$,$)���������-����������������������������������������B

+(,$�)����/��$�(+,-

(��������������������#������ ����������������������������B

�����.�0��@/�.�0��A-

�)�22�0��@�"�+$1�����5�""��W��5

�(&��66�#$*(�'�$��(�����(����+9�)�����+(,$#�66�$+,�-

$G��2 5- DD��G���0�(9��*

8

Page 162: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���$$����<�G��*0��K�%�GG��=��%

&

#�)��++�A�* ��7�*�����!""�#!���3�,*#�������*A�++�*��"/

*:��$.%/ 44��:������3�!

'

9��������������������������������������������������������������'�������B

����@5-�*:��G�����</ 44����E��2*��0��,��)#�)�*,

44���0� !E*�!,,�3� *��,�����2*�,��)#�)�*� * 9*�,

����@5-: G�H

����@5-7 G�;L1KI

����<5-: G�X

����<5-7 G�LH1IM

����<5-�*:� G��=��1

����������� �������������������� ���#���������������������������������

�������������������������� �������������������'���� ��������������#���

���������������������������������������������'�������������������������������

�����������������������������������

;����� ������� ����������*0� ��� ���������#���� ���� ��!)��S���#��������� �

�����������������������������" �������B

�*"*�*�����@/

�*"*�*�����</

Page 163: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�������� ��������

S��������������������������� �����#�������������� ��������������S�'��

�������������������� �����������������������������B������������� ����������

���������� ����������������� ����������������������������������������

�������� ������������!�������%��#������������������������������������

���������� �������������������� ���������������������������������������

*������������ ��������������������������������� ������66� �������������

�������������"����������������������D����������������������������������������

�������������6G����������������� �����������������������������������

.���������������������������� ��#�������������#����#2!�������� ����� ��'�

������������" ������ ������������������������������������������� ���

��������"������������������#�������������������� �����������#�����C�����������

��'����������� �����K�����������������������������������������������������

���������������#�������������������������� ����#������������������������K���

��������������������������������������������

���������B��������������� �������������������� ������������"�����������

��������#������������������ �����������������

�������� ��������� �����

*���������������������������������,��)#��,��#ES�7�*B

,��)#��,��#ES�7�*

&

#2!� ��* S�! *T;.U/

#2!� �!��S�) 9*�[email protected]/

��)9"* #�,�S���#*/

��)9"* ,*""S���#*/

��� ,��#ES��S2!��/

��� �*���*�S"*�*"/

'/

9����������������������������������������������������� ��������������B

,��#ES�7�*� ,��#E!��[email protected]/

,��#ES�7�*�D,��#E����G�,��#E!��/

.���� �������������������������� ������� ������10�������������������#� ���

������������������ �����������������������������������������B

����$����#�)���G�./�#�)���+�@../�#�)��66?,��#E���66%

&

44��*���2*�!��!7�*"* *��,�V*��

44����* ��7

,��#E���5-��* S�! *T.U���G�FC.F/

,��#E���5-�!��S�) 9*�T.U�G� FC.F/

,��#E���5-#�,�S���#*�����G�.1./

Page 164: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

,��#E���5-,*""S���#*�����G�.1.

,��#E���5-,��#ES��S2!����G�./

,��#E���5-�*���*�S"*�*"��G�./

'

(������� ���������������������������#����������������������������������

������� ���������������������������������������������������

S������������������'���������������������������� ������������������� ��E

��������������������� �������������� ������������ ����� �� �����������

������� �������������������������������5���#�������������������%����������

��������������������������� ���������������������������������,����������!

�����-�������

����������� ��� �������+��&

S�� ����� �� ��� ������������ ���� �����"� �� ����� ��������� ���� ��������

�������� ���66#�55�����D�,�����������-� ����������������������� ��������

�����������������!�!������%���������#��������" ������������������� �������

������ ����������"����������������" �������)��"�� ��#�D���66���������

����� �" ������� ��������� ����� �����F���� ������� ��� �������� ,����-� ���� ����

,�����-�������������#���������������������������������������������������������

��� ���������#���������$D���%661

*������������ ��������������������������"��! �����" ���������������������

������������������"���� ������� ��������������������������� ��� ���

�����#1#������������������ ����

4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

D

D�������F�����#1#��F�Z����3�! �����""),��!�*�#� ��)��������*��!���2 *��#

D

DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

#2!��,�3TU�G�A� "E\�23�*�#9!A/

#2!��D����G�,�3/

#�)��++�A�����!"�,����3��,�A�++�����++�*��"/

#�)��++�AK�,�"!7�!�����,�5��#�* *����2*������*�A�++�*��"/

#�)��++�AD���66�A�++�D���66�++�*��"/

#�)��++�AD����A�++�D����++�*��"/

#�)��++�A *5�����!"�,*������*�A�++�*��"/

Page 165: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

0���"���9-

�(&��66

#���0��'��+,�0(��:�+��$*$+����$�� X���������$�0(�+�$�#�66�$+,�-

�(&��66�#2.0��577�#�66�2.0��577�66�$+,�-

�(&��66�#.0���#�66�.0���66�$+,�-

D.��$�&�����(�F$�$G0$��$,H

���.0��77���+

���.0�������*

���2.0��577�+

���.0�������(���.D

8

��� �������� �� ����� ���� ��� ���� ����� ����� .0��77� �������� ����� ���� ����

�������������� �����0��#�������2.0��577�������������������,3+3-#��������3(3��(���

���������� ���#���������������������� ���B

�+����������+9����+*�MS��9)$,�F�

���0��'��+,�0(��:�+��$*$+����$�0(�+�$�

.0��77�+

.0���*

�$:�+�������$�0(�+�$�

���0��'��+,�0(��:�+��$*$+����$�� X���������$�0(�+�$�

2.0��577�+

.0���(

.0��77���� �������������������������������" �������������������AA

���������#������#���'������������������������� ����!��������������������

��������'�� ��������������AA� �������#����������������� ��"#�������

������������� ��������

Page 166: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���&���)���������

��'�� �����������AA������������ ��������� �����,��� ��������� ��������

����� ��� ��� ����� ���� ����������-�� 7������ �� ������ ��� ��������� ������

������!������������ ������� %�� �� ����� � �������� �� ����� ��!���������

����������������������������������������������������������� ������������

�5�������������������AA������� �������G������������������� ����������

�5@������������������������������!����������������������#��������������

�� ��������"�#��������������������!����������������� ���������� ��#2!��D�

�������#���������������������������� �����B

#2!��D#���[email protected]/

.���������� ������������������������������������������������������������

������������������������B

#2!��D#���[email protected]�G�&A��3�����������?� !�7�!��� *�!������C�A?

�A����2*� �!"��?�7�)�2!�*��!�*�� *C�A?

�A���� 7� ��*7,�!��� 7�),!�#*,1C�A?

�A���""�2!�*���9���*����0��2�!��!��*���,2�)3?A?

�A����,)��*�!�#*��,��2*�9!�3*����!""��)�����9*1A?�AA'/

������������#� ������K����2����������!�������� �����������������������������

����������������������������!������������������������������

#���T<U� �����������������A����2*� �!"��?�7�)�2!�*��!�*�� *C�A�����������������

������ ������������������������#�������������� ����������������� �����B

#2!��DD#���G�#���/

%�������� ������������������B

D#��� ������������!������A��3�����������?� !�7�!��� *�!������C�A�

DD#������������������������������������#�F�F�

$D#��%66��������������� �����������������!�����E

DD#��������������������������#�F�F�

������ �����>� ��&��B���B

6����������"�� ��� ����������"������������������ ������� ������������

�� ������� ������������!������������������������ ��������� �����

�����������������������������������"��� ������!�������

��� ���� �������� ���� ��� �������� ����������� ������������������"�

������������������������ ��E����������������������������� ������� ����������

����������������������������������������!������ ������������������������

�� ���������FC.F�

S����������� ��������� ������������������������������������������������

������������������������������������������������������� �������������������

����AA������������� ��������������

Page 167: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

D.......................................................................

�.

�.������3����'A,;�003�E����(9��*��(��+�������$����1(:,�*$+��(+��

�.�����������������������������$������'��+,�,��0��'������(+�$+��

�.

� ......................................................................D

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

�+��*��+25

�����.�0���!�"��#�9+(���+�(+�(/�*�+'�����*$��+,�()�4+#/

#(+���$������(/�'(&���L$����$,�*$4+#/

#)(��*'�*(+$'���+,�*'�&��+�$�;4+#/

#�������L$���F(�+$����1������0���$+�����&9/4+#/

#)(���&))$��+�$������$�F�,9$�()�����(&�����F$;#/##8-

�����..�00-�����DD��(�+�$���(�����'�()�0(�+�$��

������$0�'��!-

DD����0��'�������$�����+9��&��+9��&F����0��

�(&��66�$+,��66�#��$������W����(��(+��+&$�#-

9$��2�$0�'5-

)(��2�+����"� -�.�0����!-��775

�(&��66��0����!-

DD��(1�,(���$���*$/�1����0(�+�$��

�(&��66�$+,��66�#��$������W����(��(+��+&$�#-

9$��2�$0�'5-

)(��2�00�"��0��-�..�00-��00775

�(&��66�.�00-

8

����� ���������'A,;�00��������B

��$������W����(��(+��+&$

�9+(���+�(+�(/�*�+'�����*$��+,�()�

(+���$������(/�'(&���L$����$,�*$

)(��*'�*(+$'���+,�*'�&��+�$�;

�������L$���F(�+$����1������0���$+�����&9/

)(���&))$��+�$������$�F�,9$�()�����(&�����F$;

��$������W����(��(+��+&$

�9+(���+�(+�(/�*�+'�����*$��+,�()�

(+���$������(/�'(&���L$����$,�*$

)(��*'�*(+$'���+,�*'�&��+�$�;

�������L$���F(�+$����1������0���$+�����&9/

)(���&))$��+�$������$�F�,9$�()�����(&�����F$;

Page 168: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����� ����� �������

��������"�� ���� �������������������� ���#������������������������������� ��

������ ����#����������������������,�����#��13*�-��������,��*! �������� ��

!��������������������������� �������������������

S�� ��������� ���� !��� �������� ����� ��������� �� ����� ���� ���� ���� ����� �

�������������������������������� ��������������� ���4���� ��������B

�8C-�#��7���"*@���"*<

��������AA� ������� �������S�������#������#� � ��������������

�������%�����������" ���#����������������������������������������

������ �������!�������������� �������AA� ���#�������� ����� �����

���������!�3#�����!�3��������� !������������������ ��� !����������������

�����������!���������������������������B

���� !��$����!�3#?�#2!��D!�3�TU%

!�3#���������������������������������������������������������������������

����������������������#������������������������ ����G�����������������������

�������#��7��"�� �������#�������������!�3#����/�

!�3������� ������������������������ �������.������������������ ��������

�������� ����� �����!�������.������ �����!������� ����� �������������� ����

���������%�������������������#��7��"�� ��B

!�3�T.U �����,��� A#��7A

!�3�T@U �����,��� A��"*@A

!�3�T<U �����,��� A��"*<A

!�3�T!�3#U������������������ �������������#��7��"�� ��#�!�3#���������������/#������

����������������������������������#������������K��

����� �����������TU���!�3������������������������������������������������������

��������������������������������������#���������������������������������������!����

���������������������������

S�������������������� !�����������B

���� !���$����!�3#?�#2!��DD!�3�%

������� �������#�D!�3������������������ �������!�3�T.U#�D66!�3����� ������

!�3�T@U#�D66!�3������������!�3�T<U#���������

������������#���� ����������� ����������������������������������������� ����%��

������������������������������� �����������!�������������������������#

�������������������������������������!������������������������������

���������������������"�� ��������� ����� ���#�# �!�31#��#����������

������!����������������������'�������������������������� ������������

��������#�������������������G���#���� �����������������������������6��������B

Page 169: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

D.......................................................................

�.

�.������3�*,��9;�003�E����$*(+�����$�&�$�()��(**�+,:��+$���9&*$+��;

�.

� ......................................................................D

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$�6���,��F?

�+��*��+2�+����9�/������.��9L�!5

�����.�+0/�.(&�0-

�����..��9L0�"���9L�7�@-

�)�2��9��P"�<5

�(&��66�#��(9��*�#�66���9L� !�66�#�&��9$H�#

66���9L� !�66�#6)@?�6)A?�#�66�$+,�-

$G��2 5-

8

�(&��66�#�(**�+,���+$�$+�$�$,H�#�66���9L� !

66�#�#�66�.��9L0�66�#�#�66���9L�A!�66�$+,�-

8

�*,��9;�00��" �������������!�����������������������B

�*,��9���9�$G�@���9�$G�A

���������������������������������#��������������� ���'����������������#

����CL����'��������������� ���������� �����"��������� �����������$G��������

�������� ������%�������� ����� ����� ��������� ��� � �������#� ����� ���� ����� ��

��� ��������� �����(&�� ����� ������� ��� ������������� ���� ������������

,��9�$G�A-� ��� ��� ������ ������ ������ ���� ��������� �� ��9L�� ��� ���

��� ����������������������,��9�$G�@-��������������!���������� ��������9L0���

�� ������� ���������������������������������������������� �������9L�������9L0

�����������������9L������������ �����������������#�*,��9##��������9L0�7�@� ����

������������#��9�$G�@#�

������������� �������������������#�������������� �������������������������B

��(9��*��H4�����;���H�W��9$H��H4�����;����6)@?�6)A?

(�������� ������������������#�������������������B

�(**�+,� ��+$�$+�$�$,H��H4�����;������9�$G�@���9�$G�A

Page 170: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������������)��������

L��� �� ������ �� ��������� ��� ��� �� ���� �� ����� �� �AA� �����"� ��������

������������ ������ ,���� ��!�!�����O-� �AA� �������� ��� ����#� �������

������������������������������ ������������������� ����������"�

)����������������������#������������������� ������������#���������� �����

������������ ��������������������������������������

)������� ����������� ���������������� ������������������ �������B

◆ ��������������'��������������������� ����������������������������������

◆ �������������������������������������������������������������������"��

����������������������� ��������������������������������������������

������

%� ������������������������������������������������������������ �����

�������������� ������������ ������������ ��������������������� �����������'�

�����

6�������������������� ����������������B

����$D����%$%/

���������� ���������������������������������9���������������� ����������������

����������)��"�� ��B

����D����$%/

�������� ����������������#����������������������������������������� ������

�������

�������������)��)���������������

��� ������!0"��*1#��#���������� ����"�� ��������� ����������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

�������!0"��*$���%/

���� !��$%

&

44������K*���*�!������*�����!��)�#�����0��2

44������!��F���F�!,�!��!�! *�*�

�����$D����%$����"*�%/

44�������,,�3��!��)�#�����!���*,,�����2*������*�

44�������""��2*���""�0��3�!,,�3� *��,�!�*

44������3����9)��,� *�#� ��"*�,��*\*#���2*����,���0�

Page 171: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

DD������2.)0��5�"�,��1��+$-

DD������2.)0��5�"�N,��1��+$-

DD������)0���"�,��1��+$-

DD������)0���"�N,��1��+$

)0���"�,��1��+$-

DD������2.)0��52� 5-�������)(�

DD��������$�)&+���(+���������(

)0��2� 5-

8

L(�,�,��1��+$2�+�� �$+5

1���$�2�$+�?� 5

�(&��66�#:#-

�$+E-

8

�(&��66�$+,�-

8

��� �������������K������������������������������������� ���B

EEEEEEEEEEEEEEEEEEEEEEEEE

L����������������� �������������������E�����������������������������������

,��1��+$��" ���������)0��������������������������� ������ ���������������������#

,��1��+$#������������������������������������������������)0��#���������������������

�������������������"���������,��1��+$���������

�������������������������� ����������������������������������������������

�����"B

2.)0��52� 5-

L�����������AA� ��������������� ��������������������������� ��"�����

������6����#������������� ����������"���,��1��+$;�00��������������������������

�� �������������������������� �����������"�#��'������������ �����������

�"�� ������ ������������������� ������������������������������#�������

��������������������������������.�����3�������

Page 172: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������

� (���� �� ���#� "�,��)#�1#��#� ����� �� �������� ���� ������!����� ���� ��!

������������������������������������ ���

� (������ ���#��7�,��)#1#��#�������� ������������������!����#��������������

��������������

� (������ ���#�"�,�1#��#�������� ���������������������!����� ���#����������

�� ����� � ������ ���� �� ��#� ���� �������� ����� ��������� �� ������ ����

������������������������

Page 173: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

' ������

�������!!���!���� ������������������������ ��(

���!!����4��! ������������������������������ �5&

���!!� !���� ���������������������������������� �5�

���!!�!����������! ���������������������� ���

�'����!�! �������������������������������������� ���

Page 174: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

.�����������������

����AA����������������������������������������������#�����������������������

��� �������������������������������#�����,��)#��������������������,����������-

�����������E�����AA�����,��)#��������������������������������������� ��

�AA�#"!,,�����,��)#����� ����������"�� �� ����� ������������� ���������������

���������� ������,��������-������������������������������������ ������

*��'������������"�� ������������#��!�*B

#"!,,��!�*

&

����!�*8

������/

���� /

����77/

�)9"�#8

�����3*�S�!�!$%/

������!"��!�*$%/

���������S�!7$%/

�������,�S�!7$���%/

'/

S����������������������������������������������!�*�������������)9"�#����

���������������������������,���������������� ����0-#�������������������

����*#�*��������� ����������������������������!�*#��)9"�#���������*#�*�

����� ����������#����������#�������������������������%��)9"�#��������

��������,������������������������-���������������������"������,������-���������

������������ ����������������%�����!�*������������#���������������#��������

�����������������������������������������������������������

�������������������!�������������������������#"!,,����������#�������������

������� ��� ��� �������� ����!�*�� ��� �� ,��)#�� ���������#� ������� �� ���� �����

���������������������������������������������������������)9"�#�� ����������

�������������������������������������������������������AA�

����������#����������������������������������,���������)9"�#-������������������

��� ������� ��� ������� ���� �� ������� ���������� ���� ����!�*� ����� ���� �������

�������������������� ���������������������������������������!�*E����������

������������������������������������������������������������ ��

��������'�� ������ ��������������!�*������ ���������������#� ����������

����!�*�������#��������'��������������������������������������������������������

������������ �������#��������������������������������������������������������!�*

���� ���� ������ ����� ������������ ��� ������������� ���� ��������� %������� �����

���������� ����������������#����� ����������������������!�*��" ��������

S�������������������� �����������������������!�*����������������������

�)9"�#��������������� �������B������)9"�#������������� ��������������!�*

���#���������!�*������)9"�#�������������������������"���

Page 175: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

S����������������������������!�*�����������B

�!�* �!7/

��������������������������������������B

�!�* �!7S!��T<.U/

S����������������������������������������#��������������������������

��������

6��'������������������������������� ���������������������������!7B

�!�* D#"����G�N�!7/

L����� ������������������������������������������������������������� ���

S�����'�������������������������������������������������������������������������

�������������������B

�!�* �!7�G�&<<?.I?.<'/

���������������������������������������������������������������#���������

�������������� �����

+������������������������ �������������������������������������������

D������������������������� ������������������������������������������������

�����������������������������������������������������������������������

���������!7��������������#�������������������G�����������������������������F���

�!7��������������!��,��-� ���B

�!713*�S�!�!$%/

(������ ���� ���������� �� 3*�S�!�!#� ��� ���� ������� ���� �����������-�� ���

G�����������B

����� �!�*883*�S�!�!$%

&

#2!��#/

#�)��++�A���*���2*��!7��) 9*�8�A/

#���--���/

#�)��++�A���*���2*� ���2��) 9*�8�A/

#���--� /

#�)��++�A���*���2*�7*!���) 9*�8�A/

#���--�77/

44��"),2��2*�"!,�� ��= ����� ��2*����)��,��*!

#�G�#��13*�$%/

'

Page 176: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�����>�.�����������

6��'���������������!�����������������!�*����������'�����������������������B

���� ������ ����� �!�*,12E� ���� �������� ���� ����� �!�*�)�#1#��E� ���� ��������

����������!�*,1#��#������������������������������������� ����������������!�*�

)���#��������������!�*,12�����������B

44��!�*,12

*:�*���#��,�����������/

*:�*���#��,�����������/

*:�*���#��,�����������/

*:�*���#��,�����������/

*:�*���#��,���������KK/

*:�*���#��,���������KK/

*:�*���#��,������������/

*:�*���#��,������������/

*:�*���#��,������� =�/

*:�*���#��,�����������/

#"!,,��!�*

&

����!�*8

������/

���� /

����77/

�)9"�#8

�����3*�S�!�!$%/ 44��*!�����)���!�*

������!"��!�*$%/ 44�#2*#E��!�*�����#���*#��*,,

'/

�!�*,12������������������������������������������������������������������

�������������������������������!�*������������������������ ���,������

��-�������������������!�*����������������!�*�)�#1#��B

44��!�*�)�#1#��

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�A�!�*,12A

������!�*883*�S�!�!$%

&

#2!��#/

#�)��++�A���*���2*��!7��) 9*�8�A/

#���--���/

#�)��++�A���*���2*� ���2��) 9*�8�A/

#���--� /

#�)��++�A���*���2*�$L5��3��%�7*!���) 9*�8�A/

#���--�77/

Page 177: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

DD���&�����������W���)�(*���$��+0&�����$�*

��"���+;9$�25-

8

�+��,��$HHL���,��$25

DD�P���,��$���$�,��$�$+�$�$,����(�,�+9��(

DD���$�1$��:M+(1+��&�$�

�)�22''�6�����5�RR�2''�?�����55

�$�&�+2����5-

�)�22**�6���5�RR�2**�?���55

�$�&�+2����5-

�)�22,,�6�����5�RR�2,,�?�����55

�$�&�+2����5-

�)� 22**""B5RR2**""=5RR2**""C5RR2**""@@55

�)�2,,�?�2�����:�@55

�$�&�+2����5-

DD��)���$�*(+�������$F�&��'��+,���$�'$������,�L���F�$�$L$+�'�F'�B/

DD��1$���L$����$�0�'$��;

�)�2**�""�A5

�)�2,,�?����� 5

�$�&�+2����5-

�)�22''�T�B5�P"� 5

�)�2,,�?����� 5

�$�&�+2����5-

8

DD��)������0(�+������$���$,/�1$��$�&�+���L���,�,��$��+,����(�

�$�&�+2��W�5-

8

���,��$HH9$�I,��������������������������������������B���� � ������������

�� ������������������������������������� ������,��$HH9$�I,������������������

�� �� �������� ���� ��� ������ ����� �'�� ������� �� ����9$�I,���������

���������� ����������,��$#����������������9$�I,���� ��������� ����������

,��$HHL���,��$���������������������������������������������������������W�

����������������� ��������������� �������������������0����30���

)������#����'������,��$�;�00� ���������������������������������������������

��������������������,��$�;��,����������������������������������������������

��������� �� ��� ��������� C�AA!���'� ����� � ���������������-#� ��!

����������*��+�������������������������,��$���������������B

Page 178: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

DD�,��$�;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$� #,��$�;�#

DD���,$)�+$�9�(F����'*F(�����(+���+��

�(+����+������ "�@C @-

�(+����+������ "�A CC-

�(+����+���� "�@-

�(+����+���� "�@A-

�(+����+������ "�@-

�(+����+������ "�<@-

�(+����+������ "�AQ-

�(+����+������ "�AC-

�(+����+����W� "�@-

�(+����+������ "� -

�+��*��+25

�+���-

,��$�,��$�+-

DD��(0�&�$��,���:�+0&��1�$+�3%3:���W��

DD����$+�$�$,

�(&��66�#��$������W����(��(+��+&$/�3%3:���W����(�%&��H�#-

1���$�2��"���+;9$�25/���P"�3%3�NN���P"����5

,��$�+;9$�I,���25-

�)�22,��$�+;L���,��$255�""�����5

�(&��66�#�+L���,�,��$�$+�$�$,4+#-

$��$

�(&��66�#���$�$+�$�$,������4+#-

�(&��66�#��$������W����(��(+��+&$/�#-

�(&��66�#3%3:���W����(�%&��H�#-

8

8

��� ������ ����� �(���$�*� ��� ��������� ��� ���� ,��$)&+�;�00� ���� ,��$�;�00�� ��

�������#����������������#�������������������������������������������� ��

������ ������������+������(&�#�����������������������:����������9$���,��$�;����

�������������������������#�������������������������������������,��$����������

�������������������� ����

Page 179: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

(������ !��#�������������� ����������!�*����� �����������!�*�� ��� ��������

�������������!�*�������������� !��#������ ���"��������������������������!�*���

������ �� ���� ��������� ��� !��� ��G��������� ��� ���� ���"� ����� ������ ��

�� ������� ���� ��� ������������ �� �!�*� ���� ���� ��� ������������ ����

���������

���02�"*� � ��" ������ ��� ��� ����� ��� ���!�" ������#� ����������������

�����(������������������ �����������������3*�����"�����������"�����!�� ��

����������������� ���������#���� ����������������������#������ �����

�G������������R�������E�����G�����������#����� ������ ��

����!�*883*�S�!�!�������������������"������� ����--��������� ������#���

��������������������������� ������������������������������� ���������

������ ���� �� ���� ������� ��������������� ������� ��� �� ������ ������"�

�"�������������02�"*��" ������

&�������������� ����������������#���--#�������������3*������������������������

���!�*883*�S�!�!������ ��������������� ��= ���� ��������������

Page 180: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������#���

:���#���

S������������������������������������������������������������������������

,��!�����!�����-�������F������ ���������#),�S!##B

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

����!##S�) /

�)9"�#8

44� * 9*���)�#����,

'/

�����G��������������������B

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/�����!##S�) /

�)9"�#8

44� * 9*���)�#����,

'/

����������#���

S�����'��G�������������������������������������������������!)��#��*3�,�*��

*:�*������������������������������,�!��##��������� ���������������F������

������������������ �����������#�����������������������������������������

������������%���������������������������������������������������������� ���

�������������������������������������������������������������������6��'�

����� ����"�� ��B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,��)�S���!"

&

����!�*8

,�!��#�����!##) /

�)9"�#8

�������#�* *��$%�&�!##) 66/�'

�������S���!"$%

&

#�)��++�A�##) 8�A�++�!##) �++�AC�A/

'

'/

44����*������������,�!��#� * 9*�

Page 181: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�����)�S���!"88!##) �G�./

���� !��$%

&

�)�S���!"����!"@?����!"</

���!"@1��#�* *��$%/

���!"@1��S���!"$%/

���!"<1��#�* *��$%/

���!"<1��S���!"$%/

'

�������� ���#�������������������������������������)�S���!"#����!"@��������!"<�

%����������������������#�* *��#�������������!##) �������%��������������������

��#�* *���a���������������������������������������D�������������!##) ��������3�

���������������������������������������������������������������� ����������

��������������������������B

�����)�S���!"88!##) �G�./

����������� ��,�������������������������������-����������������������������

���������������������������������������������� ����

������������������������������"�������� ����������������"�����������������������

������������B�� ���������������������������� ���!������9����������#��������������

����������������������������������������������������%����������#��������

�� ���������� �� �������� ����������� ������������ �� K�� ���� ����� ��������

�����������" ���������������#��������������� ���������������'���������������

����������

9������ ����� ����������

S���������������������,������������������-��������������������������� ��

���������� �� ���������� ����������� ������� ����� ����� ���������� ��� ���

�� ���B

#"!,,�#),�S�*�!�",

&

����!�*8

#2!�� !##�)���! */

����!3*/

�)9"�#8

44� F#),�S�*�!�",F� * 9*���)�#����,

'/

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

Page 182: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����!##S�) /

�)9"�#8

#),�S�*�!�",� �*,) */

44�F#),�S!##F� * 9*���)�#����,

'/

6��#�����������#),�S�*�!�",���������������������F������������ �������������������

#),�S!##�������

5�������� �#���

S������� �����������������������������������#��F�������� ��� �#���������

���������������������������#������������� ������������������������������

� �������B���"��*���������)!"�

������� ������������������"��*���� ������������������#������� ��������G������

���" ���������������������������������� ��������������� ������������������

��������#���������������������������������������� � ��������B������������

����" ������������������������������������������������������������������������

�����������������������������������������������#���������������!�������B

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

����!##S�) /

�)9"�#8

�����V*��S9!"$%�&�9!"�G�.1./�'

44����2*�� * 9*���)�#����,�2*�*

'/

7���"����������"��*�� ��������������������������������������#),�S!##���������!

����������������������������������������������V*��S9!"B�S��������������

��������V*��S9!"�������������� ���������������

S����'��������������������������'����������������������������������������

�������������������"��*��S�������������������������������"��*��������������

����B

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

����#),�S!##/

�)9"�#8

]

��"��*������9!"!�#*$%/

Page 183: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

]

'/

]

44����)�#������*��������

����� #),�S!##889!"!�#*$%

&

]

%� ���������� ������ ����������������������#��������������������������#�������

����������������������!�*�������������F������)��"�� ��B

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

����!##S�) /

�)9"�#8

�����,�*���!0�$%�&��*�)��$9!"�+�.1.%/�'

44����2*�� * 9*���)�#����,�2*�*

'/

6��#������������������������G������������9!"�+�.1.���������������,�*���!0��

(���� ��������������#� ��� ��'�� ����� �� ������� ���� �������� 9!"� �� ������ ���

������'���������������E������������������������������������������B

#),�S!##�!@/

1

1

��� $!@1�,�*���!0�$%%

44������F��3��*�2*���2*� ��*7

%�������������������������� ��������������������� ��"��*�� ������������%�����

���������������������� ���������������������������������������������

�������������������� ������������������������������������������������������

�������������������������������������� �����������������������

���������������������������#��������������������������� �����������)!"#�����������

��� ����0�

���������������������������������� ����������"��*������)!"�������������

��������������� ���� ������ ����������� ���� �������� ������������ ������� ���

�� ���������� ���#������������������9!"!�#*��������#),�S!##������B

����� #),�S!##889!"!�#*$%

S�����'�����������������������������������������������������S�������������

������ ��������� ������ ��� ����������������������� ��� ���� ������������������

��������� �������� ������� S�� ���� ���� ���� ����� �� ���������� �� �������

��������������� ������*�����#���'�����������������������������������F���

����������������������������������������

Page 184: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�������#��� )��������

%��������������������������������������������������������������������������#

������������������������F������������������ �����C1'��C5-'����������������

���������#����'���������������������)�S���!"������������������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,��)�S���!"

&

����!�*8

,�!��#�����!##) /

�)9"�#8

,�!��#��������#�* *��$%�&�!##) 66/�'

�������S���!"$%

&

#�)��++�A�##) 8�A�++�!##) �++�*��"/

'

'/

�����)�S���!"88!##) �G�./

���� !��$%

&

�)�S���!"����!"@?����!"</

���!"@1��#�* *��$%/

���!"@1��S���!"$%/

���!"<1��#�* *��$%/

���!"<1��S���!"$%/

'

9�#������������!##) #���������������#�* *��������������������,�!��#��������������

�������!##) ����#������#�����,�!��#����������������������������������

!##) #����� ����������������� �������������#�* *������������������!������

������������������������������������#�������������#����������F������G�������!##) B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,��)�S���!"

&

����!�*8

����!##) / 44����5,�!��#

�)9"�#8

,�!��#��������#�* *��$�)�S���!"N���,�%

&

��,�1!##) 66/��44��2�,�),!3*�

'

Page 185: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

L(�,�0�I�(���25

�(&��66�#���&*H�#�66����&*�66�$+,�-

8

8-

�+��*��+25

�&+I�(�����(���@/��(���A-

�(���@;�+��$*$+�2�(���@5-

�(���@;0�I�(���25-

�(���A;�+��$*$+�2�(���A5-

�(���A;0�I�(���25-

8

��������"�� ��������#���������������������������������������������+��$*$+�

����������������������������������������������������&+I�(���B

�+��*��+25

�&+I�(�����(���@/� �(���A-

�&+I�(���HH�+��$*$+�25-

�(���@;0�I�(���25-

�&+I�(���HH�+��$*$+�25-

�(���A;0�I�(���25-

8

6��#��������������������!���������������0�I�(��������������������������������

�����������(���@������(���A�

�����>�?����� ������ ������#���

%������� ���������"�� ������������������������������������������������������#

���'�� ��������!��������"�� ��� ������ ����� �������� ����� ����������

���������������� � ��������������$�&0�����������������#�������������

������������������������#�������"���������������������C ��������'�����������#

������������������������ ������ �&��I���� ������ ���������� ������ ��������

�������������������������

DD����(&+��;�

�������&��I���

0��L��$H

)�(���F��-

��������+�����I+&*-

Page 186: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�+��*'I���I+&*-

0&F���H

L(�,��$�&025-

L(�,� �(,9$2)�(��5-

L(�,�1���,��12)�(��5-

L(�,�F���+�$25-

8-

DD ��(9��*�)��$����)&+�;�00�::�,$)�+$�

DD �&��I����*$*F$��)&+���(+�;

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$� #���(&+��;�#

DD

DD �+�'��$�&0�)&+���(+��������+9$,

DD

L(�,��&��I���HH�$�&025

*'I���I+&*�"����I+&*77-

�(&��66�#�+�$��(0$+�+9�F���+�$�)(�����(&+��#

�����66�*'I���I+&*�66�#H�#-

��+�??�F��-

�(&��66�#�&��(*$�����(&+��#�66�*'I���I+&*

66�#���$��$,�1����F���+�$�#�66�F���66�$+,�-

8

DD����(&+�;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

;>�+��&,$� #���(&+��;�#

�+���&��I���HH���I+&*�"�@ -

�+��*��+25

�&��I�����@-

�@;�$�&025-

�@;�(,9$2A� ; 5-

�@;F���+�$25-

�@;1���,��12� ; 5-

�@;F���+�$25-

�&��I�����A-

�A;�$�&025-

�A;�(,9$2@ ; 5-

�A;F���+�$25-

�A;1���,��12< ; 5-

�A;F���+�$25-

8

Page 187: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

5������

�������������7����#������)9"�#�����������������������������������������

�����������������!�*����������������� �������������������� ��#������#����

�AA� �������������*������������#��������������������������������

%� ������������ ��� � ��������������� �� ������ ���������� ���� ���"�������� ���

���������*������������������#���������������������������������������#��������

�����������������������������������!�*���������������������6��'������#),�S!##

���������������������*������������B

�#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

,�!��#�����!##S�) /

���� 7S!##S�) /

�)9"�#8

�����,*�)�$%/

����� "��3*$�"�!�%/

�����0��2��!0$�"�!�%/

�����9!"!�#*$%/

���*��������*�R)��7$%/

'/

�����������*�R)��7��������������������������#������������������������������

������������ ������������������������������������������������������#),�S!###

�������������!�*�����

S�'����������� ������ ����� ������������ ���*��������������� �����

���������������������������%��������������*�������������#��������������#��������

�� ������������#���������������������"����� ���

Page 188: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����������

%��������������� ���/#�������AA�������F������������#��������#�������,�����-#

����� ������������� ����� �����������������������������������F��������������������:

������� �#���'���������������������� ���������������������������������������������

���������������������F������������������ �#�������������������������������������

�����������������������������3�������������������������� ��������������F�������

������� �#������������������������������������������������� ��������������

%��AA�������������������� ��� �����������������������������������������������

���� �������� ��������� �� ���� ����� �������%������ �� ���� ������������ ��

�������� �������� �� ������ ����� ���������!�� ,1-#� ����� ,5--� ���� �� �!

��������,88-� ��������������������������������������������������������%�����

�F��������������������*��������������������������������'���� ��

6��'�������������"�� ����������!�*������#��������������������������������� ����

���������� �B

#"!,,��!�*

&

����!�*8

������/

���� /

����77/

�)9"�#8

�����3*�S�!�!$%/

&�#���--����--� �--�77/�'��44���"��*

������!"��!�*$%/

���������S�!7$%/

�������,�S�!7$���%/

'/

�������������#������������� !����������#����������������������������������������

���������B

�!�* �!7/

�!�* D�����G�N�!7/

)����������������������������#������������������������������ ��� ���#

���������������!"��!�*��������������#������������#��������������������,�S�!7#

�������������,�S�!7������������������������������������!"��!�*1�+������������

��������������������������������D������������������D���������#�������������

���� ���"������������� ��

������������������������������������#����������������������!�����

����� ����B

�!71��

����5-��

,����������������������������������������������!�*�������-��*�������B

�!71�!"��!�*$%

Page 189: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����G����������B

����5-�!"��!�*$%

��������'������������ ���"��#���������������������� ����������������������

�� ����������������� �������!�*������������������������������� ���

����������E������������������������������������������������������#��������

������������� ��

������������������������ ���������� ���#����'�����������������������

�������)�S���!"��"�� ������ �����52�

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,��)�S���!"

&

����!�*8

,�!��#�����!##) /

�)9"�#8

,�!��#��������#�* *��$%�&�!##) 66/�'

�������S���!"$%

&

#�)��++�A�##) 8�A�++�!##) �++�*��"/

'

'/

�����)�S���!"88!##) �G�./

���� !��$%

&

�)�S���!"����!"@?����!"</

�����)�S���!"�G�@@/

�)�S���!"88��#�* *��$%/

���!"@1��S���!"$%/

�)�S���!"88��#�* *��$%/

���!"<1��S���!"$%/

#�)��++��)�S���!"�++�AC�A/

'

6��#�����������������������#��)�S���!"#����������������������������� !��#������

�� ����������#���������������������������������������������#�* *��#�����������

������������ ���������� ����� ��������������� ������B

�##) 8�@

�##) 8�<

@@

(�����������������������������#������������� ���������� ���������������

��������� ������������������������������������������������������#�����

������������������������������B��������'����� � ���������������������������

Page 190: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

9������ ����� ����������

(���������������������������������� �#�����������������������������������D���

�������������������������������4�������������������������������������������

�� ���������������������������������������������������������������������

����� ��������.G�����#��������������������������������������������� ���

�������������������������������������

6������������������ ����������"�� ��� ���#��������������������!�*������#

������������������������������B

44���"*�F�!�*,12F?�#���!��,

44��*,�*��#"!,,*,�F�!�*F�!���F#)��S�� *F

#"!,,��!�*

&

����!�*8

������/

���� /

����77/

�)9"�#8

#"!,,�#)��S�� *

&

����!�*8

����2�/

���� ��/

����,*#/

�)9"�#8

����� #���*#�S�� *$%/

'�/

�����3*�S�!�!$%/

������!"��!�*$%/

���������S�!7$%/

�������,�S�!7$���%/

'/

����������������#)��S�� *�����������������!�*��������#)��S�� *������������������

������������������������������!�*��������������#�������������#���*#�S�� *����������

�����������������������������#)��S�� *#� �������������������������������

����������������������������������#�� *�

�������������G�����������������������B

�!�*��!7/

1

1

�!71�1#���*#�S�� *$%/ 44�,*��#���*#���� *

����������������AA��� ������#������������������������������#���*#�S�� *

�����������������B

����� �!�*88#)��S�� *88#���*#�S�� *$%

Page 191: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

����������������������������������������!�*���������������������������#)��S�� *

�����������������������������������������!�*�� �����������������������������

��� ����� �� �� ������� ������������������E� ��G������� ���� ���������������

#���*#�S�� *� ���� ����� ���� �� �� �������� �!�*� ����� ������ ���� �������

#���*#�S�� *������������� ��������������������������������������������������

�!�*�

�����AA� ���� ��������� ��� �"������� �������� ����� ���������� �� ������

�����������������"�� �������������������#)��S�� *����������������������!�*#��

�����������������#)��S�� *��������������������B

#"!,,��!�*

&

����!�*8

������/

���� /

����77/

�)9"�#8

#"!,,�#)��S�� */

#)��S�� *��/

�����3*�S�!�!$%/

������!"��!�*$%/

���������S�!7$%/

�������,�S�!7$���%/

'/

#"!,,�#)��S�� *

&

����!�*8

����2�/

���� ��/

����,*#/

�)9"�#8

����� #���*#�S�� *$%/

'/

Page 192: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

������������������

S���������� ��������������������AA���������������������������������������

��������AA�������������������������������� ������������ ���������������

����������������������*��'���������������� ������������������B

(��#")�*� +��,��*! 12-

#"!,,���!#����

&

�)9"�#8

��)9"*��/

��)9"*�3/

'/

��� !��� ������������������������ ��� ������������ ���������#�:�����7#������

����������������������! ������ ��� ��� ����������������������������������

���������������� �������������������������������������������

���� !��$%

&

��!#�����:?�7/

��)9"*�D����/

:1��G�@1@/

71��G�<1</

:13�G�;1;/

713�G�L1L/

�����G�N:1�/

#�)��++�D�����++�*��"/

�����G�N71�/

#�)��++�D�����++�*��"/

�����G�N:13/

#�)��++�D�����++�*��"/

�����G�N713/

#�)��++�D�����++�*��"/

'

������ ������������������� ������B

@1@

<1<

;1;

L1L

������#��� ��������

��'���>������� �������������������������������������������&����AA� �����

���������������� ���� ����#����� ����!�!�����!�����#�� �������������������

��������������6��'������������"�� �����������������������B

Page 193: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,���!#����

&

�)9"�#8

��)9"*��/

��)9"*�3/

'/

���� !��$%

&

��!#�����:?�7/

��)9"*� ��!#����88D����/

:1��G�@1@/

71��G�<1</

:13�G�;1;/

713�G�L1L/

�����G�N��!#����88�/

#�)��++�:1D�����++�A�A�++�71D�����++�*��"/

�����G�N��!#����883/

#�)��++�:1D�����++�A�A�++�71D�����++�*��"/

'

�������B

��)9"*� ��!#����88D����/

����������������F��������� �����������F�������� ����)9"*#������ ���������������

����� ����)9"*���������� ��!#������F������S�����'�� ��������� ���������

������������ ����������� �����)9"*�������F����� ��� �������������������������

����������������������������������������!#������ ���������B

:1D����

�����������������:1���S�������������� ����1D����'�����������������E�������������

��������������:1���L��������������������������� �����#����� �����������������

�����������������������������������������7���������������������E�����������

��������71D�����

��������#�������� ���������������B

@1@�<1<

;1;�L1L

S��������������5-D� ������������������1D� ������� �������� �����������

��������������#������������������������������������#��������B

��!#�����D:����G�N:/

��!#�����D7����G�N7/

Page 194: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����������� ���������������B

#�)��++�:���5-D�����++�A�A ++�7���5-D�����++�AC�A/

�#��� )�������� ��������

L���������� ���������� ����!�!�����!�����������"�����������������������������

����������������������������������������� �������������������������������

�������� �������� ��� �� ��� ������������ �� ������ S�� ���'�� ������������

�������������������������������������������� �������)��"�� ��#��������!

������ �����������������������������B

����$D����%$%/

���'������������ �������������������������������#�����������������������"�����

������������ ���������������������������

�����������#�������������������������������B

#"!,,�#����

&

����!�*8

����:S#����/

����7S#����/

�)9"�#8

���� "�#!�*S#����,$%/

'/

S�����'��������������������������� ������� ������������������"�#!�*S#����,�

�������#������������� ��������������������B

���� $#����88D * S��S���%$%/

��������������������������������������B

* S��S����G� #����88"�#!�*S#����,/

�����������B

* S��S���$%/

L��������������! ����� ����� ���������������������������������

������ �� ���� ��������� ���� ����� ��������� �� ������ ������ ����� �

����������� � �����L����������#� ���������"� ������������� ��������� ���

������������ �������������������������������������������� ���������

,���������AA� ����������������������-�������������� ���������������

��������� )���������������

7��������������������������������������������������������������� ��������

�������������������������AA#��������������������������������������������

����������������� � ��B

Page 195: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

������)�����(+

0&F���H

,(&F�$�)-

,(&F�$�9-

8-

DD��&+���(+�0�(�(�'0$

L(�,� ���+9$I�����2)�����(+N5-

�+��*��+25

)�����(+�G/�'-

,(&F�$� )�����(+HH.,0��-

G;)�"�@;@-

';)�"�A;A-

G;9�"�<;<-

';9�"�B;B-

���+9$I�����2G5-

,0���"�N)�����(+HH)-

�(&��66�G;.,0���66�#�#�66�';.,0���66�$+,�-

,0���"�N)�����(+HH9-

�(&��66�G;.,0���66�#�#�66�';.,0���66�$+,�-

8

L(�,����+9$I�����2)�����(+N�G0��5

G0��;)�"��;�-

G0��;9�"�=;=-

8

(�������������� ���#������������������B

�;��A;A

=;=�B;B

4� ����������������� �������������AA���������#������� ��������� ��������

����������������� ������������������������������������"��������������#

��'�������������������������� �����������,����������N-���������������

��� �������+9$I������ ��� �������������������E� ������+9$I�����#� ���������

������� ��� ��������� ��� ��� ���� ����������������� ���������������#������ ���

��������G�

=�������������������G�������������(+�������������������������������'�

����������������������������������������������� ������B

Page 196: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������S#2!�3*S#"!,,$#��,�� ��!#����N�:���%

&

44 #� ��"*�*���������:�� * 9*�,�#2!�3*�

'

S�����������"�����������������������#��,�B

#"!,,���!#����

&

44

�)9"�#8

����S#2!�3*S * 9*�,$%� #��,�

&

44

'

'/

%�#��,��������������������� ��������������������� �����������������������

��������������������F�������������������������������������������� ���#��,�

�����"����������������������������������������

.���������������

.������������������������������������� ������������������������ �����������

�2�,�� ����� �����2�,���������� ����������������������������������������������'�

�����������#�������������������������������#����������������������������������

�������������������������������

6��'����� ������������"�� ����������������2�,B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,�#����

&

����!�*8

����:S#����?�7S#����/

�)9"�#8

�����,*�S#����,$����:S����?�����7S����%

&

:S#�����G�:S����/

7S#�����G�7S����/

'

�����#2!�3*S#����,$���?� ���%/

�������,�"!7S#����,$%

&

#�)��++�A�������!�*,8�A�++�:S#�����++�A�A�++�7S#�����++�*��"/

'

'/

Page 197: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�+��*��+25

�((�,��@-

�@;�$�I�((�,�2�/�@ 5-

�(&��66�#���9�+����@#�66�#4+#-

�@;,��0��'I�((�,�25-

�@;���+9$I�((�,�2@�/�A 5-

�(&��66�#���+9$,��@#�66�#4+#-

�@;,��0��'I�((�,�25-

8

L(�,��((�,HH���+9$I�((�,�2�+��GI��9/� �+��'I��95

�((�,��A-

�A;�$�I�((�,�2GI��9/� 'I��95-

�(&��66�#���0��'��A#�66�$+,�-

�A;,��0��'I�((�,�25-

.�����"��A-

8

��� ���� ������������������B

���9�+����@

�((�,�+��$�H���@

���0��'��A

�((�,�+��$�H�@��A

���+9$,��@

�((�,�+��$�H�@��A

��� ����� ����� ������������������������������"����������������������

����������������C������'��������������F�����������������������������&������#���

���������������#������������������������������������������������������������

�� �#���������� �������� ��������������C������'�

(��������������������������������������� ���������" ����������������#����

�AA��� ����������������������������������������� ����������� �����

������������������������������������� ������� ��������������������������

������������������������������#��������������������������������������%��

����� �������������������������������������������������� ����������������

�������������������������������������������������� ��������������������

�����"������!����������������������

Page 198: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������

� ;������������������F����#"�#E#��������������������������������#"�#E��4������#"�#E

������AA��������.�������������������������������������������������������#�����

�������������������,������������������������������ �����1#�������-���������

���������������������������������������������������"������������������

��� !���

� ;������������������������B

#"!,,���"�#7

&

����!�*8

#2!���! *T;.U/

#2!��!���*,,TH.U/

#2!����"��TIU/

��)9"*� ��,S�!")*/

��)9"*���* �) /

�)9"�#8

�������"S��*�$%/

�������"S#"�,*$%/

������*�*0$%/

9��"� #"!� $��)9"*%/

'/

(��������������������������������������������B

��"�#7� \, ��2�G�&AQ1�� ��2A?A>!""*7� �!�A?A@<;[email protected][email protected]..'/

(��\�6�����������������\

� �������������"�#7�������������� �������3��������������������������������������

������ ���� �����������������������������3"�9S��"���������������3"�9S��"��

� ������� �� ����������@....�������� ��� ������ ��� ��������������"�#7� ���

����������������������������������� ��������������� ������������

Page 199: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

$ ����� ���+����

�������� ���������������������������������� �.&

��!������!� �����!������! ���������� �.�

��!������!� ������ ���������! ������ �.�

2������1��������� �����!!�! ������ �&�

��������� �1�������� �������������������� �&(

*!!������ ��� ������!���� ���������� ��&

�'�����8�*���!��������!! �������������� ���

�'����!�! �������������������������������������� ���

Page 200: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

-�����������

������� ��������������������������� ����������AA��������������������

����������������������������������������'����������)��"�� ��#��� �����

���������������#��@#�����������!�������������#),�S!##��(���������������������

��������������<�� �����������!����������������B

�<�G��@/

�����������������������������������C��������������'�������������������� ����

�������������!��!����(�����������������������������������;�������������

������������������������������<B

#),�S!##��;$�<%/

������������������������!��������������(������������#����������������������#��

���������, ����#������#����#��������-�����������������������������������

����������������B

�;66/

��������� ����

�;6GH/

����������������S�'���������������������������#�����������������

������� ��#�����������#����������������������������������������� ��!

����������������������������������������AA������������������������������

�����������������������������#�������������������������������������������� ����

����������������AA� ������������������������������������ �����������

����#���������������!���������������������������������������� ����7�������

�������������'�����#���������������#������������������������������������

����������������������������������������������������� �����������������

������!������������

��������#���������#��������� ��������#��� �������#����������!�������#

��������� ����&��#�������������� �����������������������������C���� ���'B

�������������� �����������������������������������������������������C���

����'�D����#�����������#��������� �������������������������D��������������

������������ ���������#���������.�����3������#������������������

"������6+������7���������� �

Page 201: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������������������������

(����������������������������AA#���������������������������������������

����� ������������ ��� ���� �� ���� �������������������� ��� ����������� ����� ���

�����������C�������� '�,���"�� ��#��������������������-�����������������

��������������

�������� ���� �������� ��������� ��� ��������� ����AA� �� ����� � ���

�������������������������,�����������-�������������������������������

��������������������������������������������� �����������������������������#

������������ ���"����������������CW'�

6��'��������������"�� ����������������������������������������B

#"!,,��*0#"!,,

&

����!�*8

1

44�������!�*��!�!� * 9*�,��*���*��2*�*

1

�)9"�#8

�*0#"!,,$% 44�#��,��)#�����)�#����

&

44������!"�,��3�,�!�* *��,�2*�*

#�)��++�A���,��)#���31111A�++�*��"/

'

1

44�����2*���)9"�#� * 9*�,��*���*��2*�*

1

W�*0#"!,,$% 44�*,��)#���� �)�#����

&

44�)�5�����!"�,��3�,�!�* *��,�2*�*

#�)��++�AK*,��)#���31111A�++�*��"/

'

'/

6��#����������������������*0#"!,,������������������)9"�#����������������

���������������������������S����'�������������������������)9"�#E����������

����!�*� � ����*#�*�� ���� ��� ���� ��� �������� ��� ���� ����� �������� ���������

��������#���������������������W�*0#"!,,���������������������)9"�#��������

���������������������������������������

%�����������#�����������������������������������������������������������

����� ����������������� �����#�������������������������������������������������

����������������������������������������������

(�����������������������������*0#"!,,B

�*0#"!,,���#/

�������������#��������������*0#"!,,��������������������������������������������������

�����������*0#"!,,���������������������"��������(�����#������������ �#

Page 202: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��������������������W�*0#"!,,������ �������������������������������������������!

������������������������!� � ������#������������������������������������

������������'�����������

%���������������������������������� ���������������������S���������������#

������#��" �������������������������������

S�� ���������� ������������� ���������������������������F����#����

�����������������������������%��������F�������������������������������E

������� ��� ������������ ������� ��� �"������� �� ���� ���� �� ���� �������

�����������������#���������������F��������������� �#��������������������

����"����������������������������F������������

*��'���������������������������������������������������)���#�����������

�������������*0#"!,,B

#"!,,��*0#"!,,

&

����!�*8

����!?�9?�#/

�)9"�#8

�*0#"!,,$%

&

!�G�9�G�#�G�./

#�)��++�A���,��)#���31111A�++�*��"/

'

W�*0#"!,,$%

&

#�)��++�AK*,��)#���31111A�++�*��"/

'

'/

9�"�#�������������������������������*0#"!,,B

���� !��$%

&

�*0�)�#$%/

'

������*0�)�#$%

&

�*0#"!,,��#@/

&

#�)��++�AK*�����3���#<1111A�++�*��"/

�*0#"!,,��#</

'

#�)��++�A)�����,#��*������#<1111A�++�*��"/

'

Page 203: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�*0#"!,,����� ����������������#����� �������#����� ��������� ��������#� ���

�������� ������������� ��� �������� ����� ���� ����� �������� �� K�� ���

��� ���������������� ����������� ��� ������ ���������������� ��� ���� �������

�*0�)�##�������������#��#@������#<#����*0#"!,,������������� ������������������

�����������E������������������������������ �#������������������ �������

�������

������ �������� ��������� �����������B

���,��)#���31111

K*�����3���#<1111

���,��)#���31111

K*,��)#���31111

)�����,#��*������#<1111

K*,��)#���31111

������������������������������������������������� ��#��������������

����������������*�)������������������������*�)�����������������������������������

�� �������������*�)��/����������������������������� �������E���������

�������#���������������������� ����������������������������������

������ ������������ �����

6��#� ���� ������ ������ ���� ����!������� ������ �"�� ��#� ��� �� ��� ��� ���� �

������������� �������������������#),�S!##�,������� �����������-#���'��

�����������������������,*�)�������������������������������� ��������������#

����������������������������#),�S!###�����������������������,*�)���������

��������������� ��� ���� ��"�� �"�� ��#���� � ����� ����� ��!��� � ����������� �

���������%������������������������#����������������������������������� ��

������#),�S!##�������������������������!##�)��,12�����������B

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

����!##S�) /

�)9"�#8

#),�S!##$%/

����� "��3*$�"�!�%/

�����0��2��!0$�"�!�%/

�����9!"!�#*$%/

W#),�S!##$%

&

#�)��++�A�##�)���A�++�!##S�)

++�A�#"�,*�A�++�*��"/

'

'/

Page 204: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��� ���� ����� !##�)�#1#��� �������� ���� ����������� �� ���� ������ �����

��������� ���� ����� ���� ��������� ����� ����������� ��� ���������� ��� ���

�"�� ��������������� ����#��"�� �������,*�)������ ����������������������

���������������������������

44 F!##�)�#1#��F

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*� A!##�)��,12A

44

44 #),�� *�S!##�)��� * 9*�� �)�#����,

44

#),�S!##88#),�S!##$%

&

#�)��++�A���*���) 9*�����!##�)������9*���*�*�8�A/

#���--�!##S�) /

#�)��++�A���*�������!"�9!"!�#*8�A/

#���--�9!"/

#�)��++�A�),�� *��!##�)���A�++�!##S�)

++�A�#�*!�*��0��2�9!"!�#*�A�++�9!"�++�*��"/

'

�����#),�S!##88"��3*$�"�!�� "��3* *��%

&

9!"�6G�"��3* *��/

#�)��++�A���3* *������A�++�"��3* *���++�A�!##*��*�A�++�*��"/

'

�����#),�S!##880��2��!0$�"�!��0��2%

&

���$9!"�-�0��2%

&

9!"�5G�0��2/

#�)��++�A���2��!0!"����A�++�0��2�++�A�3�!��*�A�++�*��"/

�*�)��/

'

#�)��++�A��,)���#�*���9!"!�#*�����0��2��!0!"����A

�++�0��2�++�*��"/

#�)��++�A���2��!0!"����A�++�9!"�++�A�3�!��*�A�++�*��"/

9!"��������G�$�"�!�%./

'

����� #),�S!##889!"!�#*$%

&

#�)��++�A�!"!�#*����!##�)����,�A�++�9!"�++�*��"/

'

Page 205: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������������������������������������#),�S!##���������#�!@#������������

��������#),�S!##88#),�S!##$%�������������������������� ����������������� ��!

�������!@�� ����������������!@��F���B

#),�S!##�!@/

������������������� ������������������������� ���������� �������" ������������

,*�)���%������������ !��#�����������F����!@������������ �#������������

��������#),�S!##88W#),�S!##����G������������������C�����'������������!@�

44 F!##�)��,1#��F

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*� A!##�)��,12A

���� !��$%

&

#),�S!##�!@/

!@1"��3*$<H.1..%/

!@19!"!�#*$%/

!@10��2��!0$H..1..%/

!@19!"!�#*$%/

'

��� �������� ��� �������� ��� ���� ������ ���������� ���� �������� ����� ��� ���

!##�)�#1#��� ������������������������B

#),�S!##88#),�S!##$%

�����������������������������������#���������� ��������������� ��������

��������������������������(�������������������������#�������������(���

���������� ���#������� �����������������,���!��������������������������-B

���*���) 9*�����!##�)������9*���*�*�8������

���*�������!"�9!"!�#*8�����

�),�� *��!##�)���@<;LH�#�*!�*��0��2�9!"!�#*�@...

���3* *������<H.�!##*��*�

�!"!�#*����!##�)����,�@<H.

���2��!0!"����H..�3�!��*�

�!"!�#*����!##�)����,�KH.

�##�)���@<;LH�#"�,*�

Page 206: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������������� �������������

���������������������������������� ������������������������������6��'�

����� ����"�� ��#�������� ����#,�!�3@1#��#������������������������������

��������������� �������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,�#����

&

����!�*8

����:S#����?�7S#����/

�)9"�#8

#����$����:?�����7%

&

:S#�����G�:/

7S#�����G�7/

'

����������$%

&

#�)��++�:S#�����++�*��"/

#�)��++�7S#�����++�*��"/

'

'/

���� !��$%

&

#����������@�G�#����$H?@.%/

�����@1�����$%/

44���#����������</ 44��""*3!"

#����������;$@H?<.%/ 44�!99�*��!����

�����;1�����$%/

'

���� ���� ����������� ������� �� ����� �� �������� ������� �����"�� ��

����������������#�����D������������������������������������������� �������

��"��*�a����������������� ���������)������������� !��#�������������������

����������#������ �������B

#����������@�G�#����$H?@.%/

�����������������E�������������#���������������������������������H�����@.��������

������ �� ����� �������� D� ���� ��������� :S#����� ���� 7S#����� ���� �� H� ���� @.

�� ���������D��������������������@#������������������������#������ ��������

������������������G�����B

#����� �����;$@H?<.%/

������������������G��������������������������������������������������@������

S���������������������������������������������������������������������

�������������������������

Page 207: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

������ �������������������������������B

#),�S!##�!@/

������������������������������#),�S!##88#),�S!##$%#�������������� ��������

.���� ��� ��� ������� �� ������������� ���� ��������� �" �������� ��������#� ���

�� ������������������������������������� ������������������������B

#),�S!##�!@/

���� ���������� ���� ������������� ������� ���� �" ������ ���������� �����

� ������������������������������#������������������� ���!�� ������������

��������������������� ���������������������������������������������

����������� �������#���������������� ������������������������������ ����������#

���#,�!�3@1#��#�����,�����������-������������������<�����������B����������������

���� �������� �������������#� �������� �� ���� ������� �� ���� ��! ������

�������#������������������������#���������������������������������������

�������@����������;�� ��������������� ���������� ��B

H

@.

@H

<.

��������������������������������������#������S�'������������������������

���������������������D���������������������D� ���������������������

��������������������������������������������� �����"���������������

����#���������������������������������S�'����������������������������

������������������������� ���

�����>� ������������� ������ �������

6��'�� ����� ������������ �"�� ��� �� ���� �� ��������� D������ ����������

��������D����������������#),�S!##�������)��������������

44 F!##�)��,12F

#"!,,�#),�S!##

&

����!�*8

�"�!��9!"/

����!##S�) /

�)9"�#8

#),�S!##$%/

#),�S!##$���?� �"�!�%/ 44���*�"�!�*��#��,��)#���

����� "��3*$�"�!�%/

�����0��2��!0$�"�!�%/

�����9!"!�#*$%/

'/

Page 208: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

DD 3���)&+�;�003

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$� #���(&+��;�#

�&��I���HH�&��I���25

�(&��66�#�+�$��+&*F$��()����(&+���(�F$�(0$+$,H�#-

��+�??����I+&*-

�(&��66�#�+�$���+������F���+�$H�#-

��+�??�F��-

�(&��66�#�&��(*$�����(&+��#�66����I+&*

66�#���$��$,�1����F���+�$�#�66�F���66�$+,�-

8

�&��I���HH�&��I���2�+��+&*I�+��/� )�(���F��I�+��5

���I+&*�"�+&*I�+��-

F���"�F��I�+��-

�(&��66�#�&��(*$�����(&+��#�66����I+&*

66�#���$��$,�1����F���+�$�#�66�F���66�$+,�-

8

L(�,��&��I���HH�(,9$2)�(��� �(,9$*$+�5

F���7"��(,9$*$+�-

�(&��66�#�(,9$*$+��()�#�66��(,9$*$+��66�#����$0�$,#�66�$+,�-

8

L(�,��&��I���HH1���,��12)�(���1���5

�)�2F���?�1���5

F���:"�1���-

�(&��66�#����,��1���()�#�66�1����66�#�9��+�$,#�66�$+,�-

�$�&�+-

8

�(&��66�#�+�&))���$+��F���+�$�)(��1���,��1���()�#��66�1����66�$+,�-

�(&��66�#����,��1���()�#�66�F���66�#�9��+�$,#�66�$+,�-

F����������"�2)�(��5 -

8

Page 209: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

L(�,��&��I���HHF���+�$25

�(&��66�# ���+�$�()����(&+�����#�66�F���66�$+,�-

8

%���������� ���B

DD 3���(&+��;�003

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$� #���(&+��;�#

�+��*��+25

�&��I�����@-

�@;�(,9$2A� ; 5-

�@;F���+�$25-

�@;1���,��12� ; 5-

�@;F���+�$25-

�&��I�����A2@A<B�/�@ ; 5-

�A;F���+�$25-

�A;1���,��12J� ; 5-

�A;F���+�$25-

8

��� �&��I���� ������ ���������� ��� �������� ��� �������� ���������� ��

���������������������� ��F������������&��I���������������� � ��#������'��

������������� ������������������������#��������������������� ���������� �����

��������������������������� ������������������B

�&��I���HH�&��I���2�+��+&*I�+��/� )�(���F��I�+��5

�����������������������������������&��I������������������������������ ����������

������������������������������������

���*��+#�������������#��@������A����� ���&��I���#�������������@����������������

��� ���� �������� �������� �&��I���HH�&��I���25#� ���� �������� ��������� ���

� ��������������� �������������������������� �������������#���������

����� ���� ������� ���� ����� ������������� ������ 4��������� �� �A� ������� ���

������������������������������������������� ���������������������A���

��������� �������������������������� ��������������6��'�� ������ ����� ���

������������������B

Page 210: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

���*���) 9*�����!##�)������9*���*�*�8������

���*�������!"�9!"!�#*8�����-��

�),�� *��!##�)���@<;LL�#�*!�*��0��2�9!"!�#*�<...

���3* *������<H.�!##*��*�

�!"!�#*����!##�)����,�<<H.

���2��!0!"����H..�3�!��*�

�!"!�#*����!##�)����,�@KH.

�),�� *��!##�)���@<;LH�#�*!�*��0��2�9!"!�#*�@...

�!"!�#*����!##�)����,�@...

���2��!0!"����KH.�3�!��*�

�!"!�#*����!##�)����,�<H.

������������� ����&�������&� ��������

S���������������������������������������F��������������������������

�����������������������������*0� ���B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,�#����

&

����!�*8

����:S#����?�7S#����/

�)9"�#8

#����$����:?�����7%

&

:S#�����G�:/

7S#�����G�7/

'

����������$%

&

#�)��++�:S#�����++�*��"/

#�)��++�7S#�����++�*��"/

'

'/

���� !��$%

&

#�����D�S#����/

�S#�����G��*0�#����$H?@.%/

�S#����5-�����$%/

'

Page 211: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

6��#������������������������������ ��#������������������������������������

��������������� ������S#������%����������#����������'��������������������

������#�������������������������������������������������������H�����@.�

%��������F����� �����������������������������������������������������������

���� ��� �� �� ��� ��� ���� ���� ����#� �� ������ �F���� �� ������ ����� ��

��������������������B

#"!,,�#����

&

44

'/

����G��*0�#����/

��� ����������(������������������� �#����������������'���������������������

������������������������������������)������������������������#��������

�" ��������������������������B

�*"*�*����/

��������������������������������������� ���������������

Page 212: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

5���������+������������������

S����������������������������������������������#����������������� ������

���#��������������� ���/��6��'������������ ������������������G����� ���

�������������������� ��B

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

������+&*F$�

0��L��$H

�+��+&*-

0&F���H

+&*F$�25���+&*�"��-�8 DD��(+���&��(�

�+���&*25����$�&�+2+&*5-�8 DD����$���)&+���(+

DD��&+���(+� 3�%�I)&+�3�(L$��(�,$,

�+���%�I)&+�2�+�5-

)�(����%�I)&+�2)�(��5-

,(&F�$� �%�I)&+�2,(&F�$5-

8-

�+��*��+25

+&*F$��+-

�+����"�+;�&*25-

�(&��66�+;�%�I)&+�2�5�66�$+,�-

�(&��66�+;�%�I)&+�2�)�(��2�5�5�66�$+,�-

�(&��66�+;�%�I)&+�2�2,(&F�$5��5�66�$+,�-

8

�+��+&*F$�HH�%�I)&+�2�+�� �5

�(&��66�#�$�&�+�+9��+���%&��$H�#-

�$�&�+2��.��5-

8

)�(���+&*F$�HH�%�I)&+�2)�(���)5

�(&��66�#�$�&�+�+9�)�(����%&��$H�#-

�$�&�+2)�.�)5-

8

Page 213: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

,(&F�$�+&*F$�HH�%�I)&+�2,(&F�$�,5

�(&��66�#�$�&�+�+9�,(&F�$��%&��$H�#-

�$�&�+2,�.�,5-

8

��� ���� ����� �� ��� ��� �����#� +&*F$�#������� �������� ��� ������ ������

������� �����������#�+&*#������������������������ ������������������������

�������� ��� ���� �������� ���� ������ ��� ������� ��������� ��� ������ �� +&*� ��

������������������������������� �������������������������������������������

�%�I)&+�������������� ��������������� ���������������������������

�����!�������� ����������������������������,(&F�$�����E�����������AA��G��������

��������������)�(��������� ������������ ���������� ������B

�$�&�+�+9��+���%&��$H�A�

�$�&�+�+9�)�(����%&��$H�A�

�$�&�+�+9�,(&F�$��%&��$H�A�

Page 214: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

1������� �+��������

� ������������������� �������������������������������S�������������

���������������������������������������AA��������������5������+�,���������-

����D�,����� ��-�� ����������������������������� ���������� ������ �������

�������������� ������AA�

����AA������� �������������������������B

. / 0 1 2 3 4 5

66 77 6 68 7 78 88 .8

9 : 33 7 08 18 28 48

58 38 98 :8 668 778 ; 172

17 <= �� 8 00 11 �*0 �*"*�*

��� ������������������������������������������ ������������������������

��������� )� �"�� ��#� ��� ��'�� �� ��������#� ��� ���� ��� ����� ����� ���

����!����������� ������������ �����������������������������#���

��������������*0� ���������������������#�������������� ����

�������������������������������������������������������������������������

������������������#����������������������.�����3�������������� '��� �

�������������"������� ������#��������� ��������#�����������������

��!������������������������������� ��������������#������� ���������� �

���������������������������������

S�����'����������������������� ����B

- -2 >> �>

�AA�����'����������� ������������������������������ ���������!

����� ��� ��� ����� �� ������ ��� ���#� �������� ����� ��� ��� ���� ���� �

���������� �����������������)��"�� ��#���������������������������

����8G����������" ����������������#�������7�����#������������������G������

����GG�����������AA������������ ����G�� ���������������8G�����������E

���������������GG������G��������������������������������������

� ������ ��� ���#� �������� ������ �� �������� ������ ��� ���� �����

��*�!���������������������������������������"�������� �����������������

���������"���"�� ��#���������������������� ���#�6��6��'������6� ���!

����������������B

#2!�� !��S#2!�88��*�!���6$!��S#2!�N� #<%

&

44���*�!�����)�#�����#��*

'

������������������������������������! �����������������������*�!���6#

������������������������!�F���� �������#<#������������#<����������������

��������*�!���6������������,!��S#2!�-��������� �������� ������������������

�������������������������

��� ���������������*�!���6������������������������������%����������

� ������������������� ����������6�

Page 215: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�����>� 1+��������� �������

6��'�� �� ��� ��� �"�� ��� ���#� ������� !��S#2!�1#��#� ����� ����� ���� �����

!��S#2!������������������������������������������� ������������

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,�!��S#2!�

&

����!�*8

#2!��#/

�)9"�#8

44�#��,��)#���

!��S#2!�$#2!��#S��%�&�#�G�#S��/�'

44���*�"�!�*��F6F

#2!����*�!���6$!��S#2!�N�#<%/

#2!��#S��$% 44�!##*,,��)�#����

&

�*�)��$#%/

'

'/

���� !��$%

&

!��S#2!��#@$F3F%/

!��S#2!��#<$F2F%/

#2!��,) /

,) �G�#@�6�#</

#�)��++�AF�) F����A�++�#@1#S��$%�++�A�!���A

++�#<1#S��$%�++�A��,�A�++�,) �++�*��"/

'

#2!��!��S#2!�88��*�!���6$!��S#2!�N�#<%

&

44�!�������2*�#@�#2!�!#�*���2*�!"�2!9*��#���,�"!#* *�������2*�#<�#2!�!#�*�1

44���2�,�3��*,��2*�F,) F�����2*��0��#2!�!#�*�,1

�*�)��$#�6�$#<1#�5�$F!F�5�@%%%/

'

��� � ��������� ��������� ������ ��������������������������������

��6� ���������������������� ������������������������������������������

������� ���#�#���������!�����E�����2���������3������� �����������"��!�� �

�" ������������� ���������������������������������� ����������������

���������������������!��S#2!������������� ����������������#�##����� �

#2!�����������������������������B������������������������#�������� �������

�����E����������������������������������������#E���������������! ���

����������������������������������� ����6�

Page 216: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

������� !����������#��������������������������!��S#2!�#�#@�����#<��������������

������������������������������������3�����2��� ����������(���������������

�������#�,) #������������������������! ����������������B

#@�6�#<

��������������������� !������ ���������������B

F�) F����3�!���2��,��

9����������������������! ��������������*�!���6��6���������������B

#2!�� !��S#2!�88��*�!���6$!��S#2!�N� #<%

����� ����������� ������#���������������������������������F����#<���� ��!

���������� ���������������!��������������������������������#@�6�#<1��������

�������#� ���� ����� #<� ��� ���� �������� �� ���� �������! ���� �������

��*�!���6�� ��� ���������������������������������������*�!���6�������������

����'������������������������������������������� ����������������������������

������������������������������������B

!��S#2!��:@$F#F%/

!��S#2!��:<$F�F%/

��'���>��������:@�����:<� �������������������� ���B

,) �G�:@�6�:</

��� �����:<���������� ����� ���� �� ��������������������*�!���6� �������#<�

L���������������������������!��S#2!�N�#<�������������������� �������������

!��S#2!�� ��� ������������#��������� ��� �� ������������������������ ������

�������� ��������� ���������������������� ���������������������������

����������! ��������������*�!���6�������� ����������� �������2�,� ����

��#@�� ����������������������������������������������������#���#@�

��������*�)������������B

�*�)��$#�6�$#<1#�5�$F!F�5�@%%%/

#� ��� ���� �������������������#@#���������������� ���� �� ������ �2�,� ���������

�������� ��� ������ �������������� �� �������#<1##������� ��� ���� ������� ���

�� ������� ��������������������#��������������#����������S���������������

�*�)�����������������������2�,� ������" ����������������B

�*�)��$�2�,5-#�6�$#<1#�5�$F!F�5�@%%%/

%��#������������������������������,) B

,) �G�#@1��*�!���6$#<%/

������������� �����������������������*�!���6���������������������� �����

�2�,� ���������������������F����#@�

��������������������������� ���#�G#�������������������������������

�����������������)������������������������� �������������������

���������������������� �������� ����������������� ����� ������������F����� ���

Page 217: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��� ��������������������� ���������AA������� �������������������������!

������� ������������!������������F������%���"�� �������������������

��������������������������� �������� ����D������������������������������

�����������

.��������� ������������#������ ���������������������������� ����

�������������� ���#���������������������������6�����D#������" �����B

!�6�9�D�#

���������������������������B

!�6�$9�D�#%

S�����'���������������� ������������������������������������������

����B

P: 44���FPF��,�!"0!7,�)�!�7

@K�J�X 44���FJF��,�!"0!7,�9��!�7

������������ ����������������������������� � ����������G��������

������ ����� ��������������6�������� ����!��S#2!�1#���������������E�6

������������������������������������������������������

1+��������� ������������>�:�����������������&

���������� ��������������� ���� ������������������������������������

����������������������������������������������������#�����������������!�!

�������������� ��������������������������������!�������������������������������

������������������ ���,����3��������"�� ������������������� �������������

������������������G��������� ������������������������������

%� ������ ��������� ���� ��� ��������� �� ������ �� ���� ����� �� ��� &�� �������#

����-�������������D������������-����� ��D������������������������F�����������

����� ������#� ����� ����� ������ �� ���� ����� ����� ������ ��

������������6��'�����B��� ������������������������������,�@�����,�<���������

��,�@������� ������������������ ����������������������!��������������

&��������� �#������F��������������������������������B

� �

��,�@��,�<

��������������#��#�����,�@� ���������������������

Page 218: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

���������������������������������������

��,�<�G���,�@/

(������'������������� ���-����!B���'���� �������� ���������������������

����� �������&��� ��������� ���������������������������(������,�@����

��,�<�������������������� �#�����������������������������,�@�������,�<�����

����� ��,�����-������������������������������������������������������(�

���������������!�������������������������������������� ������� �����

����� �������#�������� ������������������ �������������������������!�

�� �����������������������������#"!,,#������������� ����������#����(������

��� ���������� �� ���� �����#� ��,�@� ���� ��,�<�� 6��'�� ��� ��'�� ������ ���

����������� ��������������������'�������� ���������������������

������������������B

#"!,,����#"!,,

&

����!�*8

#2!��D�/

�)9"�#8

44����)9"�#� * 9*�,�2*�*

44���*�"�!�*��!,,�3� *�����*�!���?

44�#���*,� * ��7�0��2�����,�!�#*,

���#"!,,N� ��*�!���G$���#"!,,N%/

W���#"!,,$%�&��*"*�*��/�'

'/

�����*�!���G���������������������� ���������������������������������������

����������������������������������������(����������#������������� �������� �����

���2�,� ���������������������������������������������������������������������������

�����������������������������������������������������������������6��'�����

����������������*�!���G��������B

� �

��,�@��,�<

��

Page 219: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

44 F��*�!���GF

���#"!,,N����#"!,,88��*�!���G$���#"!,,N� ��,�@%

&

44���B*�*?��**�5#��7��2*���� �������,�@1���

44�������2*���� �������,�<1���?���

44���,� �"7��2*������*����,�@1���������,�<1���1

�*�)��$D�2�,%/

'

S�������������������������������������������������������B

��,�<�G���,�@/

��������������������������B

��,�<1��*�!���G$��,�@%/

�����*�!���G��������������������������������������,�@����������������(����

� ����������� �������������,�@1������������� �������������,�<1���S�

���������"����������������#��7�����������������������,����3��������"�� �����

������������������ ����&��� ��������������������� ����������������F�������

�����#���� ��������� �� ��������������������� ��������'�������� ����

+�������������������������������������B

��������������*�)��$D�2�,%�������������������������������������������,�<��

��������������������������������������������,�@����� ��������,�<�����������

�������������!���������������������

9�������#��� ������������ ������� ���#��������� ���������������������

����*�!���G������������������������ �������������������������������

��,�@

��,�<

Page 220: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

������������� ������������

S�������������������������������������� �#����������������������#�������

������� ��������������������������������'����������������������������B

���#"!,,� ��,�<$��,�@%/

���#"!,,���,�<�G���,�@/

�����������������������������������������#������� ������������������������ �

���������� ,��������� ���!� �����������-� ����������������������!��!�����

�������������#�������������-������������������ �����������������������������

����������������������������������#���������������� ������������������������S�

���������������� ��������� ��������������� ���������������� ���

��������������� ����������������������������

�'������������������������!������������������������ ��������������B

� (�����������������������������������������������������

� (�������������������������������������

)�������������#������������ ������������ �������� �����������

-������������#;���������� ���&� ������������

%�� �������������������������������������������������������������������������

����������������������������������������������

�������������������������#����� ��� ��������� �����������������������B

�88�$#��,���N%/

������ ������������������������������#������������������� ����������������

��������� ����������������������G�������� ������������ �������������'�

����������#� �������������������� ���������������������������

���������������������������� ���������#����'������������������#����B

#"!,,�#����

&

����!�*8

����D:S#����?�D7S#����/

�)9"�#8

#����$����:?�����7%

&

#�)��++�A���,��)#���31111A�++�*��"//

:S#������G��*0����/

D:S#�����G�:/

7S#������G��*0����/

D7S#�����G�7/

'

����������$%

&

#�)��++�D:S#�����++�A�A�++�D7S#�����++�*��"/

Page 221: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

'

W#����$%

&

#�)��++�AK*,��)#���31111A�++�*��"/

�*"*�*�:S#����/

�*"*�*�7S#����/

'

'/

4����������������������#����B

#����������@$H?@.%/

��������#������������������������������������H�����@.���������������

������ ������:S#���������7S#�������������������������������'������������

����������������,�G��������-�������������� ������B

#����� �����<$�����@%/

#����������<�G������@/

�������������������������!� ������!�� ���� ���������������������

�������������������

������������#�������������� �������������������������� ��������������������<

�����������������������@�� ����������#����������������������#����������� ����

������������������������������� �����������������������������������������

������������������������������ �����������

��� ������������������������ �������!�������� ���������#���������������

��#�����������������������B

#����$#��,��#����N�#��7�����%

&

#�)��++�A���7�#��,��)#���31111A�++�*��"/

:S#�����G��*0����/

D:S#�����G� D$#��7�����1:S#����%/

7S#�����G��*0����/

D7S#�����G�D$#��7�����17S#����%/

'

��������������<� ����������������������" ������������������ �����������������

�������"�� ��#� ������������� ����������������!� ���� ���� �����������

:S#���������7S#����#������������������� ��������������������������� ���

���������������������������������������:S#���������7S#��������� �����������!

����������������������<��(������������������������������������������#��������

������������������������������

(���� ���� � �� �������� ��������� ��� ���� #����� �����#� �������������� �� �����

������������������������������������������������������������������������������

� ������������������������������ ����������� �������������������������

����!����

Page 222: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

�����>���3�����������

����!��������������������D��������#���������!���������������������#���!

������D�������������������F�������������������������AA� ���������%

������������������� ���������������������#���������������� ������������

���������� *������%�� ����� ������ ��� 3#� ���� �����AA� �������� *����

����������������������������� � ���,����3�������

&������� ��� ���������������� ��������� ������� ������� �� ��������������������

������������AA#������������� ���������#,����������"�� ��#���������������������

����������������������������,����3�������

)���#�����#,����������������������� ��������������������#,��12B

44 #,��12�Z��*���*,��5,����3�#"!,,

#"!,,�#,��

&

����!�*8

#2!��D,���/

�����,"*�/

�����,,�V*/

�)9"�#8

#,��$%/

#,��$���%/

#,��$#��,��#2!��D%/

#,��$#��,��#,���N%/

�����,*�S,��$#��,��#2!��D%/

#2!��D!##*,,$%�&��*�)��$,���%/�'

44�9��!�7���*�!���5��*�"�!���)�#��������

44��5,����3�#��#!�*�!����

�������*�!���6G$#,��N%/

44���*�"�!�*��!,,�3� *�����*�!���?�#���*,��5,����3,

#,��N���*�!���G$#,��N%/

W#,��$%�&��*"*�*�,���/�'

'/

*:�*���#��,���������/

���������#,��������������������� �����,��������� ����������������#����������

��������������!��K������������ ���������������������������������������

��������� ����������� ���������������������������������������������������!

������� ������������������������������������ ����������������#,���������

������������������������������������#,�������������� �������������

��������������� ��������!���������������������������������

�����������������������������������D��������!##*,,�D����������������������,����

���� ���� �������� ,*�S,��� �� ���� ���� ��"�� ������ �� �� #,��� ���������� ��� ���

�� ���������� ���� ��� ��������� ���� ���� ���������� ��������� ��� ��� ���

���������#,���)�#1#��B

Page 223: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

DD ����)&+�;�00�E�,$)�+$�������������)&+���(+�

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$�6�����+9? DD���+,��,�����F���'�����+9������

>�+��&,$�#����;�# DD��&���:����+9������

DD�������(+���&��(��

����HH����25

�0���"�+$1��������!-

���O$�"���-

.�0���"�34 3-

��$+�"� -

8

����HH����2�+����O$5

�0���"�+$1��������O$!-

���O$�"���O$-

.�0���"�34 3-

��$+�"� -

8

����HH����2�(+��������.�I�+5

��$+�"����O$�"�����$+2�I�+5�7�@-

�0���"�+$1��������$+!-

����0'2�0��/��I�+5-

8

DD��(0'��(+���&��(�

����HH����2�(+�������N�(FI�+5

��$+�"����O$�"�����$+2(FI�+;�0��5�7�@-

�0���"�+$1��������$+!-

����0'2�0��/�(FI�+;�0��5-

8

L(�,�����HH�$�I���2�(+��������.�I�+5

,$�$�$��0��-

��$+�"����O$�"�����$+2�I�+5�7�@-

�0���"�+$1��������$+!-

����0'2�0��/��I�+5-

8

Page 224: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

L(�,�����HH(0$���(�7"2����N��A5

�����.�0-

��$+�7"�2�A;��$+�7�@5-

�0�"�+$1��������$+!-

����0'2�0/��0��5-

������2�0/��A;�0��5-

,$�$�$��0��-

���O$�"���$+-

�0���"�+$1��������$+!-

����0'2�0��/��05-

8

DD 3(0$���(�"3�E�����9+�������

����N�����HH(0$���(�"2����N��A5

DD 1�����)(����$����$�()�����9+*$+��()���$���*$������P

DD 2$;9H��@�"��@�1(&�,�*$�+��(��+9���$�����5

�)�2�����""�N�A5

�$�&�+2.����5-

DD ,$���(���$�������0��$��+�������(FS$���2����5�F$�+9��(0�$,��(/

DD ��$+��$���(���$�$+(&9���0��$�)(����$�(FS$���F$�+9��(0�$,

,$�$�$��0��-

�0���"�+$1�������A;��$+!-

DD �(0'���$�������+,������$+9��

��$+�"����O$�"��A;��$+-

����0'2�0��/��A;�0��5-

DD �$�&�+������������(FS$����(���$�����9+*$+�

�$�&�+2.����5-

8

������������������������������� ������0���������������������"���������

���� ����������������������������������� ��������������� �������� �������

��������������������������������������������"�������� ��������%�������

�������������!������������������������������������������

������������������������ ����������� ����������������������������������"�

���������������������������������������������������������������� �����������

��������� ������ ������������ �� ���������� ����� ��"��� )������#� ���� ��"�� ,��� ���

�����O-����� ����

��������������������(0$���(�7"�����(0$���(�"����������� ����"���������

���!������������������������������������������������,��������������O-��������*��+

��������� ��� *��+� �������� ������ ���� ���� ��������#� ��� ����� ��� ,G������-� ���

�������#����������������������������������������������0���

Page 225: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

������� ����������� ���������������������#,��� ��� ��� ���� !��� �������� ��� ���

���������#,��1#��B

44 ���3�! ���"*�F#,��1#��F

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�A#,��12A

#��,����������G�<HX/

���� !��$%

&

#,���,@/

#,���,<$���%/

#,���,;$A!���������!�7F,�9�*!��!���\! �A%/

#,���,L$A2�,�,���7������2*��)�A%/

,@1,*�S,��$A�!�7�2!��!�"���"*�"! 9�A%/

,<1,*�S,��$A02�,*��**��0*�*�9"!#E�!,�,����A%/

,@�6G�,</ 44���*�"�!�*��F6GF

,@�6G�,;/

,@�6G�,L/

#,���,H/

,H�G�,@/ 44���*�"�!�*��!,,�3� *��

#�)��++�A,H8�A�++�,H1!##*,,$%�++�*��"/

#,���,X$,H%/ 44�#��7�#��,��)#���

#�)��++�A,X8�A�++�,X1!##*,,$%�++�*��"/

#,���,K�G�,X/ 44�#��7�#��,��)#���

#�)��++�A,K8�A�++�,K1!##*,,$%�++�*��"/

'

����������#����� ��������������������#,�������������,@#�,<#�,;�����,L����#�����

�����#������� �,H#�,X�����,K������������������������������������! ���

������������� �����������������������(�������� ���������#���������������

���������������� ��������������������������������� ���������������������������#,��

�F�����,H#�,X�����,K�

Page 226: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������

� .�������#���������������"�� ���#�������������������������������������G���

��� ����������

� ." ������������������������������� �����

,;�G�,<�G�,@/

����� ��������#������,@#�,<�����,;�����F�����������#,���������

� (������ ���� ������������ ���� ������ �������� ���� PP� ����� ����� ���

����������������������������������������

Page 227: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�, -���������

�������� ���������������������������������� ���

���!!� ��������� �������������������������� ��&

*���!!� ������ �������������������������������� ���

��!������!� �����!������! ���������� �%&

;������� ��������� ���������������������� �%.

<������ $����! ���������������������������� �(�

=�������"�>����1������ $����! ������ �((

�'����!�! �������������������������������������� �(.

Page 228: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

-�����������

������ ����������#������������� ��������#� ���������AA� �������������.��������

��'���������� �����������������������������������������������������

������������������������������������� �������� �������������������#

�������������������������#���������������������������������� ��#���'�������

����B

◆ 4�����������������"��������������������

◆ ��������������������������������������������������������

◆ L������������������������������������������������������������������

�����������������

◆ 4��������������������� ����������������

◆ L��� �����AA� �� ������������� ��� ����B� ����������������������

��������������������������������������������

�������������������������������������������������(���������������������#

��'���������������������������������������������������������������#��������

���� ���������������(������������������#��AA����������������������������!

���������� ��� ���� ���������4������ �������� ������� ���� ���������������� ��

�"��������������������

*��'����������������������"�� ���������� ����#����������* �"�7**��������"�� ���

%��� �� ������ ����� ������� �������������B� ����� ����� �� ����#� ����� �� ����#

�� �������������������E������� �����������������#� ��������,�����-������

)� � ������� �� ����� �� ��#���� ����� ���� ����� ���� ���������%�+�����

������ ���� �� ������ ���� ����#� ����� ����� ���� ����� ��� �� ��� �����

�� ������%��� ����������������������������%�*����+��������������

����������������������������������+������������ ������)��"�� ��#�����

���������������������������������������������%�4����#���������������#����

������"�������������������7������%����������������� ���������������,�����

���������������'����O-#�����I���!7�������'�� ��������������������� ���! ���

�����������������������+�����������

��������� ������"�� ��#�����������������������������������������������* �"�7**#

�������������������������������������������������������������� ������

�������������������,)�*���,��#� !�!3*������������������������������������

����* �"�7**�������� ������������������������������������"�� ����

�������������������������������AA#�������������� �������������������

������ �������� ��� ������� ����� ����� ���� �� ������������ ���������

��������������������� ��� ����������#� ���� ���������#��� ���������+�����

��������������������������������������������.� ������*���+����������� ��

������������������������������ ���������+�������S����������������������

���������������������������� ������������

Page 229: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

B��*?��!7?����*?���� ��*

K�,�"!7�,�!�),

S�������������� ���������+�����������������.� ����������������������

�������������� ������#������#�����������������������������������������

������� ��������������������)��"�� ��#����������� ��������� ���������

�����������������������������4�� ����������������������G����������������������

�����������������������������G��������� ����������F�����

� ����� ���������� ����� �� ���������� ������ ����������#� �AA� �� �������

��� �����D������������������������������������ ������������������������

��������� ������������������������������ ������

�AA��� �������� ��� ������������������������������������������������������

�����������������������������������S���������������������������������

����������������,������������-� �����������������������������������������

S�������������������������������������������������������� �������(�������

�������#�������������������������������� ���������������� ������������

����������������������������������������

(�������������������#���������������������������������B���������������� ��!

�������������������������������!��������������������������������!������2�� #�

������-��������������������,.� ����#�+�������������-���'��������������

�������#����#� ���������� ������(�������������������#��� �!����������������������

������������������������ ��������

K!�!

�*�!����,

�! *?�K�?�� ���

��!�*

� �"�7**

�)�*���,��

=�������?����),

�!7�!�*

��!����,,* 9"7

�!7?�K�,�"!7�,�!�),

�!�!3*�

�!"!�7?����),

���*���*0

�!7?�K�,�"!7�,�!�),

���*�!�!3*�

�!7?�K�,�"!7�,�!�),

�*�!�*� !#2��*

�!7?�K�,�"!7�,�!�),

�*#2��#�!�

=�������?��!7 !�*

Page 230: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

����� ����������

6��'�������������������* �"�7**����������������(�����������������������

* �"�7**� ����� ������ ���� �� ����� ������� �������#� �*#2��#�!�#� ,)�*���,��� ���

!�!3*���4�'��������������������������������

#"!,,�* �"�7**

&

44��������!�*� * 9*�,?�9)��#�)"��9*

����*#�*�8

44� * 9*�,�2���*����� ��*,�����0��"�

�)9"�#8

����3�!�*/

44��)9"�#�#"!,,� * 9*�,

'/

#"!,,��*#2��#�!��8��)9"�#�* �"�7**

&

����!�*8

44�#"!,,� * 9*�,�,�*#���#����F�*#2��#�!�F

�)9"�#8

����)������/

44��)9"�#� * 9*���)�#����,�#!��!##*,,

44�����!�*� * 9*�,�����2�,�#"!,,�!,�0*""

44�!,�����*#�*�� * 9*�,����F* �"�7**F

'/

#"!,,�,)�*���,���8��)9"�#�* �"�7**

&

����!�*8

44

�)9"�#8

44

'/

#"!,,� !�!3*��8��)9"�#�* �"�7**

&

����!�*8

44

�)9"�#8

44

'/

%�������������* �"�7**�����������������#��������������B

#"!,,�,)�*���,���8��)9"�#�* �"�7**

&

44

'/

����������������� �#�,)�*���,��#���������������������! ���������������������

* �"�7**����#�����������������������#������K��������������������������

S�������� ����������#"!,,������#��������������������������������������� ��#

�� ���������������

Page 231: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��� ������� � ��������)9"�#� ��� ����������������������������(���� �� ������ ��

����������������������������#���������������������� ��������)9"�#��������

�����������������������������#��)9"�#��������������������������������)9"�#

�������������������������������)9"�#�������� �������������������#�����������

�������������������������������������!�*�

.�������*#2��#�!�#�,)�*���,������� !�!3*������������������������������������

�����������* �"�7**��L�������������������������������������������� ��#�������

������� ���� ��! ������������� �� ���� ��������� * �"�7**� �F���� ��� ��� ����

��������������������������������������������6��'���������B

44 �*���*�F�*#2��#�!�F�!���F* �"�7**F�#"!,,��9\*#�,

* �"�7** *@/

�*#2��#�!� �@/

44 �""),��!�*�9!,�#�!##*,,��)"*,?�!,,) ��3

44 F�)9"�#F�!##*,,�,�*#���*������*���*�5#"!,,��*#"!�!����,

*@13�!�*�G�@/ 44��?��3�!�*���,�F* �"�7**F

44 * 9*�

�@13�!�*�G�@/ 44��?��3�!�*���,�F�*#2��#�!�F

44 * 9*���*���*����� �F* �"�7**F

�@1)�������G�H;/ 44��?��)���������,�F�*#2��#�!�F

44 * 9*�������*���*����� �F* �"�7**F

*@1)�������G�K/ 44�������?��)���������,�������

44 ,#��*�����F* �"�7**F��9\*#�

�������������������������������������������! �������������������������������

������������������������� ���������������������� �������������������B����

�������������������������������������������� �������������������

�����>�������������&���������������&

6��'�� �� ����! ���� �"�� ��#��������� ���� * �"�7**�����#� ����� ����������

������������� ��������������� �����AA������"������ ��������� ������������� ���

���������������������

��� ����������������������� �����������* �"�7**12������������������

������������ ��� ���������* ��)�#1#�����������������������������������

������������������* �1#��� ���� ������������������������� ��������������

�F�������������������������

Page 232: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�DD $*0�('$$;�

$+&*�%&���)�����(+������/�����/�������/�������/��������8-

������$*0�('$$

0�(�$��$,H

�����.+�*$-

�����.,��$�) ����-

�+�� �+,�L�,&���*0�('$$�(-

��������+��$*0�('$$�(-

�+��9��,$-

%&���)�����(+� $*0�('$$b&��-

)�(������&*��'-

0&F���H

DD��(+���&��(�

$*0�('$$25-

DD�,$���&��(�

Y$*0�('$$25-

L(�,�0�'25-

L(�,�0�(*(�$2�+�5-������DD�����$��+��$*$+�

L(�,�,��0��'���&�25-

8-

�������$��+����+�H�0&F����$*0�('$$

0��L��$H

)�(����(&��'���$-

�+����&+�(+�(-

0&F���H

DD��(+���&��(�

�$��+����+25-

DD�,$���&��(�

Y�$��+����+25-

L(�,�0�'25-

L(�,�,��0��'���&�25-

8-

�������&0$�L��(��H�0&F����$*0�('$$

0��L��$H

)�(���*(+���'��'-

0&F���H

DD��(+���&��(�

�&0$�L��(�25-

Page 233: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

DD�,$���&��(�

Y�&0$�L��(�25-

L(�,�0�'25-

L(�,�,��0��'���&�25-

8-

������*�+�9$��H�0&F����$*0�('$$

0��L��$H

)�(���*(+���'��'-

)�(���F(+&�-

0&F���H

DD��(+���&��(�

*�+�9$�25-

DD�,$���&��(�

Y*�+�9$�25-

L(�,�0�'25-

L(�,�,��0��'���&�25-

8-

������������$��+����+#��&0$�L��(������*�+�9$�����������������������������

$*0�('$$��%�����! ���������������$*0�('$$���������������������������

���������������������

%��������������������������������������������� �������������������������

��������� .���� ������ �������� ���� ��� 0�'� ���� ,��0��'���&�� ���������� ��

�"��������������� ���������������� �������������������� ������������������

�����������������%���������#����#�����0�'�����������������������������#����������

���#����G������������������������������B

DD������&�����$�30�'3�)&+���(+�����

�&0$�L��(�����@-

;

;

�@;0�'25-����DD���+(���*F�9&(&�

S�� ���� ����� ���� ��������0�'�������� ���� C�@;'� ���"� ���������� �������

�����������$��+����+��������������#�����0�'����������������������������$��+����+

����������

��� ����� ������ $*0�('$$#� ���G����#� �������� �� ���������� �� ���� �������

0�(*(�$�� ���$*0�('$$��������������������������������������������������F���

�� ��N�$*0�('$$#� �$��+����+#��&0$�L��(���*�+�9$��N� �������� ��G������� ���

���������

��� ���� �����$*0)&+�;�00� �������� �������� ����� �� �������� ���������

��������������������������

Page 234: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

DD $*0)&+�;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$�6�����+9?

>�+��&,$� #$*0�('$$;�#

DD������,$)�+$��+,��+�������$��������*$*F$�

�+��$*0�('$$HH$*0�('$$�(�"�@ -

DD������,$)�+$�3$*0�('$$3�*$*F$��)&+���(+��)����

$*0�('$$HH$*0�('$$25

�����+�*$�+�� !-

�(&��66�#�+�$��+$1�$*0�('$$�+�*$�#-

��+�??�+�*$�+-

+�*$�"�+$1����������$+2+�*$�+5�7�@!-

����0'2+�*$/�+�*$�+5-

,��$�) �����"��W��-

�+,�L�,&���*0�('$$�(�"�$*0�('$$�(77-

9��,$�"�@-

$*0�('$$b&���"�����-

���&*��'�"� ; -

8

$*0�('$$HHY$*0�('$$25

,$�$�$�+�*$-

,$�$�$�,��$�) ����-

8

L(�,�$*0�('$$HH0�'25

8

L(�,�$*0�('$$HH0�(*(�$2�+�� �+��$*$+�5

9��,$�7"��+��$*$+�-

8

L(�,� $*0�('$$HH,��0��'���&�25

8

DD������,$)�+$�3�$��+����+3�*$*F$��)&+���(+�

�$��+����+HH�$��+����+25

�(&��'���$�"�@ ;B-

&+�(+�(����"� -

Page 235: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�(&��66�#Z(&��'�$*0�('$$�#�66�+�*$�66�#�������$,#�66�$+,�-

8

�$��+����+HHY�$��+����+25

�(&��66�#Z(&��'�$*0�('$$�#�66�+�*$�66�#����)��$,P#�66�$+,�-

8

L(�,� �$��+����+HH0�'25

)�(���0�'��$�M-

0�'��$�M�"��(&��'���$�.�B -

���&*��'�7"�0�'��$�M-

�(&��66�#Z(&��'�$*0�('$$�#�66��+,�L�,&���*0�('$$�(

�����66�#�0��,�#�66�0�'��$�M�66�$+,�-

8

L(�,� �$��+����+HH,��0��'���&�25

�(&��66�#Z(&��'�$*0�('$$�#�66��+,�L�,&���*0�('$$�(

�����66�#����()�9��,$�#�66�9��,$�66�#��+,�����F$$+�0��,�#

�����66����&*��'�66�#��(�)��������'$��#�66�$+,�-

8

DD������,$)�+$�3�&0$�L��(�3�*$*F$��)&+���(+�

�&0$�L��(�HH�&0$�L��(�25

*(+���'��'�"�@J ; -

�(&��66�#&0$�L��(��#�66�+�*$�66�#�������$,#�66�$+,�-

8

�&0$�L��(�HHY�&0$�L��(�25

�(&��66�#&0$�L��(��#�66�+�*$�66�#����)��$,P#�66�$+,�-

8

L(�,��&0$�L��(�HH0�'25

���&*��'�7"�*(+���'��'-

�(&��66�#&0$�L��(��#�66��+,�L�,&���*0�('$$�(

�����66�#�0��,�#�66�*(+���'��'�66�$+,�-

8

L(�,� �&0$�L��(�HH,��0��'���&�25

�(&��66�#&0$�L��(��#�66��+,�L�,&���*0�('$$�(

�����66�#����()�9��,$�#�66�9��,$�66�#��+,�����F$$+�0��,�#

�����66����&*��'�66�#��(�)��������'$��#�66�$+,�-

8

Page 236: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

DD������,$)�+$�3*�+�9$�3�*$*F$��)&+���(+�

*�+�9$�HH*�+�9$�25

*(+���'��'�"�A@ ; -

F(+&�������"�A@ ; -

�(&��66�#�+�9$��#�66�+�*$�66�#�������$,#�66�$+,�-

8

*�+�9$�HHY*�+�9$�25

�(&��66�#�+�9$��#�66�+�*$�66�#����)��$,P#�66�$+,�-

8

L(�,�*�+�9$�HH0�'25

���&*��'�7"�*(+���'��'-

�(&��66�#�+�9$��#�66��+,�L�,&���*0�('$$�(

�����66�#�0��,�#�66�*(+���'��'�66�$+,�-

8

L(�,�*�+�9$�HH,��0��'���&�25

�(&��66�#�+�9$��#�66��+,�L�,&���*0�('$$�(

�����66�#����()�9��,$�#�66�9��,$�66�#��+,�����F$$+�0��,�#

�����66����&*��'�66�#��(�)��������'$��#�66�$+,�-

8

9������������������������������������ �������#�������$*0�('$$�������!

������� � �� �������� �� �� ������� ������������ ��� ���� �� ���������#��

��������������������������#�$*0�('$$#����������������� ����������������������#

0�'�����,��0��'���&�#��������������� � ������������ ���

6��'������*��+��������B

DD $*0;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$� #$*0�('$$;�#

�+��*��+25

�$��+����+��@-

�&0$�L��(���@-

*�+�9$�����*@-

�@;0�'25-

�@;,��0��'���&�25-

Page 237: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�@;0�'25-

�@;,��0��'���&�25-

*@;0�'25-

*@;,��0��'���&�25-

8

�����������F���������������#������������$��+����+#��&0$�L��(������*�+�9$��

��� ����� ����#� ��� ���������� $*0�('$$� �F���� ��� �� �������� �������� ����� ��

���� �������������������� ���� �"����������� ������������������

�+�$��+$1�$*0�('$$�+�*$��&�$

Z(&��'�$*0�('$$�S(�+�������$,

�+�$��+$1�$*0�('$$�+�*$���� %

&0$�L��(��������������$,

�+�$��+$1�$*0�('$$�+�*$�?�� ��$

�+�9$��*����'+�������$,

Z(&��'�$*0�('$$�@ �0��,�A@=

Z(&��'�$*0�('$$�@ ����()�9��,$�@

��+,�����F$$+�0��,�A@=��(�)��������'$��

&0$�L��(��@ @�0��,�@J

&0$�L��(��@ @����()�9��,$�@

��+,�����F$$+�0��,�@J ��(�)��������'$��

�+�9$��@ A�0��,�A@

�+�9$��@ A����()�9��,$�@

��+,�����F$$+�0��,�A@ ��(�)��������'$��

�+�9$��*����'+����)��$,P

&0$�L��(�����������)��$,P

Z(&��'�$*0�('$$�S(�+����)��$,P

Page 238: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

��������������

�'��� ������� �" ������� ���� ������� �� ���� ������!� ������� ������� ����!�*� ���

�)9"�#��9�����������������������*#�*�������#�������������������������������

�������������������������������������������������������������������!�*#

����*#�*�������)9"�#�

2�������������

&����������������������������������������������������������������������!� �������

����!�*#�����*#�*����)9"�#�

��� ��������������B

#"!,,� !�!3*��8��)9"�#�* �"�7**

!�!3*�� ������������*#�*�������)9"�#����������* �"�7**������������ ����

��������������

��� ���������������B

#"!,,� !�!3*��8�����*#�*��* �"�7**

!�!3*��������������*#�*�������)9"�#����������* �"�7**#�����������������

����������)9"�#������������� ������B�������'���������������������������

���������* �"�7**��F����

��� ��������������B

#"!,,� !�!3*��8�����!�*�* �"�7**

������! ���������������* �"�7**���������������� !�!3*������������ �����

��������� !�!3*�#���������������������������� �����������������*#�*��

�)9"�#�����������* �"�7**�

7��������������������������������������������������E������������������������

�� �������6��'������"�� ������������������������������ ������������������������

������B

#"!,,�!

&

����*#�*�8

����:/

�)9"�#8

����7/

����V/

'/

#"!,,�9�8�����!�*�! 44� * 9*�,����!

44�����!�*����9

&

����*#�*�8

!88:/ 44�:�#���*��*���������*#�*�

Page 239: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�)9"�#8

!887/ 44�7�#���*��*������)9"�#

����� 7�)�#$%

&

:�G�H/�44�?�����*#�*�

'

'/

���� !��$%

&

9�9S��,�/

9S��,�17�G�X/ 44����?��)9"�#

9S��,�1V�G�K/ 44���������?�,��""�����!�*

�*�)��$.%/

'

������!�����������������������������9���������������!#��������������!�*�����������

��������L����������������������������� ������������������#�988:#�9887�����988V���

����!�*����������������9������������������������������������9�

���" ���������������������B�!88:��������������������*#�*������������!887

�����)9"�#���������9��!88V��������������!�*���������9������������������

������ ���� ���� ��������� ���� ������� ������ �� �� ������������� �� �"������ ����

� �����������������������������������������������������������"�� ��#�!88:�����������

�����������������9�������*#�*�#����������!�*���)9"�#�

%����������������#�!88:��������������������������������988 7�)�#$%��&������

!88:��������*#�*�#��������������������������������� !�������������������#�!887����

������������������)9"�#���������������F����������������������� !����%���������

��!88V�������������������������9S��,������������� ���������

������#��� �����

%���������������������������)9"�#����������������������������������������������

�������� ���%������������������������������!�*������������������������������

������ ��� ��� �� �#��������� �������� ����������� ���� �������%� �����������

�����������������*#�*���������������������������������������������� �#��������

���������������������������������������������������������������������

���

������������������������������)9"�#E����������������������������������!�*�

.���������������������������������*#�*���4�������������������*#�*��������

����������������������������������������������������������������������������

�����������������������������������

Page 240: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

���������������������������

���������������������������������������������������������������

�� �������������� ��� ������� ���� ������������������� ��������� ��� ������ �

��������������������������������������������������������������������K�

������������������#����������������������"����������������������������

������������������������������4�������������������������������������

�����������

�������� ������������ ��������� �������� ���������� �����#� ��� �� �����

�������#�������������������������������������������������������������!

���������������������,������-���������������������������

������������������������������ �������#�������������������������������������

�����"������������ ������6��'������* �"�7**��������������������������

������������������������������������ �������B

#"!,,�* �"�7**

&

����*#�*�8

#2!��D�! */

#2!�� D�!�*�����2/

���� �������)!"� �"�7**��/

,�!��#�����* �"�7**��/

����3�!�*/

R)!"���#!����� * �"�7**[)!"/

�"�!��!##) �!7/

�)9"�#8

44�#��,��)#���8��! *�!���3�!�*

* �"�7**$#2!��D?����%/

44�#��,��)#���8��! *?�9���2�!�*?�3�!�*?�R)!"���#!����

* �"�7**$#2!��D?�#2!��D?����?�R)!"���#!����%/

44��*,��)#���

W* �"�7**$%/

������!7$%/

�������� ��*$���%/ 44�,#!"*���#�* *��

�������,�"!7��!�),$%/

'/

S��������������������������������� ��* �"�7**��������������������������B

* �"�7**�*@$A!�*�A?�L%/

* �"�7**�*<$AQ�2�A?�AHI.H<HA?�L?�K�� ��%/

��� ����� ���������� ������� �� ������ �F���� *@� �� �� �� * �"�7**� ���� ������ ���

�������������������������,������������������� ����������������������

����-�������������������F����������������������A!�*�A�����L�

Page 241: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

������������������#�������������������������������������������������������������

�������������������������������������(������������������������������������#

�������,G������-�����������������������������(�����������������������������

���������������������������������������������������#����������������

�����������������������������������������������������������������������

������������

*��'�������������������������!������������������� ���*#2��#�!��� ���������!

�������������* �"�7**������*#2��#�!��������������� ��������� ����*#2��#�!�

�����������������������B

#"!,,��*#2��#�!��8��)9"�#�* �"�7**

&

����!�*8

�"�!��2�)�"7 !�*/

������)������/

�)9"�#8

44��! *?�3�!�*?��!�*?�)������K

�*#2��#�!�$#2!��D?����?��"�!�?����%/

44��! *?�9���2�!�*?�3�!�*?�R)!"���#!����?��!�*?�)������K

�*#2��#�!�$#2!��D?�#2!��D?����?�R)!"���#!����?��"�!�?����%/

44��*,��)#���

W�*#2��#�!�$%/

������!7$%/

����� ��,�"!7��!�),$%/

'/

S����������������������������������������������������*#2��#�!������������

����B

�*#2��#�!�88�*#2��#�!�$#2!�� D�! *��?

��� #2!��D9���2��?

������� ������3�!�*��?

���R)!"���#!�����R)!"��?

����"�!���!�*��?

�����������)��������%

��������8�* �"�7**$�! *��?�9���2��?�3�!�*��?�R)!"��%

)����������"� ������������������������*#2��#�!���������������������

�����������������������* �"�7**���������� ����*#2��#�!���������������

���� ��� �������#� �!�*��� ���� )��������#� ���� �������� ����� �� ���������

���������2�)�"7 !�*�����)�������������������

Page 242: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�����>������ �������&������ ������������� �������������

��������* �"�7**��������������#���������������������������������������

�������#� ������

44 * �"�7**12

*�) �R)!"���#!�����&���?��� �?�K�����?�K�� ��?����� �K'/

#"!,,�* �"�7**

&

����*#�*�8

#2!��D�! */

#2!��D�!�*�����2/

���� �������)!"� �"�7**��/

,�!��#�����* �"�7**��/

����3�!�*/

R)!"���#!����� * �"�7**[)!"/

�"�!��!##) �!7/

�)9"�#8

44�#��,��)#���8��! *�!���3�!�*

* �"�7**$#2!��D?����%/

44�#��,��)#���8��! *?�9���2�!�*?�3�!�*?�R)!"���#!����

* �"�7**$#2!��D?�#2!��D?����?�R)!"���#!����%/

44��*,��)#���

W* �"�7**$%/

������!7$%/

�������� ��*$���%/ 44�,#!"*���#�* *��

�������,�"!7��!�),$%/

'/

#"!,,��*#2��#�!��8��)9"�#�* �"�7**

&

����!�*8

�"�!��2�)�"7 !�*/

������)������/

�)9"�#8

44��! *?�3�!�*?��!�*?�)������K

�*#2��#�!�$#2!��D?����?��"�!�?����%/

44��! *?�9���2�!�*?�3�!�*?�R)!"���#!����?��!�*?�)������K

�*#2��#�!�$#2!��D?�#2!��D?����?�R)!"���#!����?��"�!�?����%/

44��*,��)#���

W�*#2��#�!�$%/

������!7$%/

�������,�"!7��!�),$%/

'/

#"!,,�,)�*���,���8��)9"�#�* �"�7**

Page 243: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

0��L��$H

)�(���*(+���'��'-

0&F���H

DD�+�*$/�9��,$/����$

�&0$�L��(�2�����./��+�/�)�(��5-

DD�+�*$/�F����,��$/�9��,$/�%&���)�����(+/����$

�&0$�L��(�2�����./������./��+�/�%&���)�����(+/�)�(��5-

DD�,$���&��(�

Y�&0$�L��(�25-

L(�,�0�'25-

L(�,�,��0��'���&�25-

8-

������*�+�9$��H�0&F����$*0�('$$

0��L��$H

)�(���*(+���'��'-

)�(���F(+&�-

0&F���H

DD�+�*$/�9��,$/����$/�F(+&�

*�+�9$�2�����./��+�/�)�(��/�)�(��5-

DD�+�*$/�F����,��$/�9��,$/�%&���)�����(+/����$/�F(+&�

*�+�9$�2�����./������./��+�/�%&���)�����(+/�)�(��/�)�(��5-

DD�,$���&��(�

Y*�+�9$�25-

L(�,�0�'25-

L(�,�,��0��'���&�25-

8-

(�� �� ������� ���������� ��������� �� ���� ��� �������� ��� ���� ���� ����

$*0)&+�;�00B

DD $*0)&+�;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$�6�����+9?

>�+��&,$� #$*0�('$$;�#

DD ,$)�+$��+,��+�������$��������*$*F$�

�+��$*0�('$$HH$*0�('$$�(�"�@ -

DD ,$)�+$� 3$*0�('$$3�*$*F$��)&+���(+��)����

$*0�('$$HH$*0�('$$2�����.+�*$�+/� �+��9��,$�+5

+�*$�"�+$1����������$+2+�*$�+5�7�@!-

Page 244: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

����0'2+�*$/�+�*$�+5-

,��$�) �����"��W��-

�+,�L�,&���*0�('$$�(�"�$*0�('$$�(77-

9��,$�"�9��,$�+-

$*0�('$$b&���"�����-

���&*��'�"� ; -

8

$*0�('$$HH$*0�('$$2����� .+�*$�+/

�����.F�����+/

�����+��9��,$�+/

���%&���)�����(+�%&���+5

+�*$�"�+$1����������$+2+�*$�+5�7�@!-

����0'2+�*$/�+�*$�+5-

,��$�) �����"�+$1����������$+2F�����+5�7�@!-

����0'2,��$�) ����/�F�����+5-

9��,$�"�9��,$�+-

$*0�('$$b&���"�%&���+-

�+,�L�,&���*0�('$$�(�"�$*0�('$$�(77-

���&*��'�"� ; -

8

$*0�('$$HHY$*0�('$$25

,$�$�$�+�*$-

,$�$�$�,��$�) ����-

8

L(�,�$*0�('$$HH0�'25

8

L(�,�$*0�('$$HH0�(*(�$2�+�� �+��$*$+�5

9��,$�7"��+��$*$+�-

8

L(�,� $*0�('$$HH,��0��'���&�25

8

DD ,$)�+$� 3�$��+����+3�*$*F$��)&+���(+�

�$��+����+HH�$��+����+2����� .+�*$�+/

��+���9��,$�+/

�)�(������$�+/

��+���&+�(+�(�+5

Page 245: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

������������H�$*0�('$$2+�*$�+/�9��,$�+5

�(&��'���$�"����$�+-

&+�(+�(����"�&+�(+�(�+-

�(&��66�#Z(&��'�$*0�('$$�#�66�+�*$�66�#�������$,#�66�$+,�-

8

�$��+����+HH�$��+����+2����� .+�*$�+/

������.F�����+/

��+���9��,$�+/

�%&���)�����(+�%&���+/

�)�(������$�+/

��+���&+�(+�(�+5

H�$*0�('$$2+�*$�+/�F�����+/�9��,$�+/�%&���+5

�(&��'���$�"����$�+-

&+�(+�(����"�&+�(+�(�+-

�(&��66�#Z(&��'�$*0�('$$�#�66�+�*$�66�#�������$,#�66�$+,�-

8

�$��+����+HHY�$��+����+25

�(&��66�#Z(&��'�$*0�('$$�#�66�+�*$�66�#����)��$,P#�66�$+,�-

8

L(�,� �$��+����+HH0�'25

)�(���0�'��$�M-

0�'��$�M�"��(&��'���$�.�B -

���&*��'�7"�0�'��$�M-

�(&��66�#Z(&��'�$*0�('$$�#�66��+,�L�,&���*0�('$$�(

�����66�#�0��,�#�66�0�'��$�M�66�$+,�-

8

L(�,� �$��+����+HH,��0��'���&�25

�(&��66�#Z(&��'�$*0�('$$�#�66��+,�L�,&���*0�('$$�(

�����66�#����()�9��,$�#�66�9��,$�66�#��+,�����F$$+�0��,�#

�����66����&*��'�66�#��(�)��������'$��#�66�$+,�-

8

DD ,$)�+$� 3�&0$�L��(�3�*$*F$��)&+���(+�

�&0$�L��(�HH�&0$�L��(�2����� .+�*$�+/

��+���9��,$�+/

�)�(������$�+5

H�$*0�('$$2+�*$�+/�9��,$�+5

Page 246: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

*(+���'��'�"����$�+-

�(&��66�#&0$�L��(��#�66�+�*$�66�#�������$,#�66�$+,�-

8

�&0$�L��(�HH�&0$�L��(�2����� .+�*$�+/

������.F�����+/

��+���9��,$�+/

�%&���)�����(+�%&���+/

�)�(������$�+5

H�$*0�('$$2+�*$�+/�F�����+/�9��,$�+/�%&���+5

*(+���'��'�"����$�+-

�(&��66�#&0$�L��(��#�66�+�*$�66�#�������$,#�66�$+,�-

8

�&0$�L��(�HHY�&0$�L��(�25

�(&��66�#&0$�L��(��#�66�+�*$�66�#����)��$,P#�66�$+,�-

8

L(�,��&0$�L��(�HH0�'25

���&*��'�7"�*(+���'��'-

�(&��66�#&0$�L��(��#�66��+,�L�,&���*0�('$$�(

�����66�#�0��,�#�66�*(+���'��'�66�$+,�-

8

L(�,� �&0$�L��(�HH,��0��'���&�25

�(&��66�#&0$�L��(��#�66��+,�L�,&���*0�('$$�(

�����66�#����()�9��,$�#�66�9��,$�66�#��+,�����F$$+�0��,�#

�����66����&*��'�66�#��(�)��������'$��#�66�$+,�-

8

DD ,$)�+$� 3*�+�9$�3�*$*F$��)&+���(+�

*�+�9$�HH*�+�9$�2����� .+�*$�+/

����+���9��,$�+/

��)�(������$�+/

��)�(���F(+&��+5

���H�$*0�('$$2+�*$�+/�9��,$�+5

*(+���'��'�"����$�+-

F(+&�������"�F(+&��+-

�(&��66�#�+�9$��#�66�+�*$�66�#�������$,#�66�$+,�-

8

Page 247: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

*�+�9$�HH*�+�9$�2����� .+�*$�+/

��������.F�����+/

����+���9��,$�+/

���%&���)�����(+�%&���+/

���)�(������$�+/

���)�(���F(+&��+5

���H�$*0�('$$2+�*$�+/�F�����+/�9��,$�+/�%&���+5

*(+���'��'�"����$�+-

F(+&�������"�F(+&��+-

�(&��66�#�+�9$��#�66�+�*$�66�#�������$,#�66�$+,�-

8

*�+�9$�HHY*�+�9$�25

�(&��66�#�+�9$��#�66�+�*$�66�#����)��$,P#�66�$+,�-

8

L(�,�*�+�9$�HH0�'25

���&*��'�7"�*(+���'��'-

�(&��66�#�+�9$��#�66��+,�L�,&���*0�('$$�(

�����66�#�0��,�#�66�*(+���'��'�66�$+,�-

8

L(�,�*�+�9$�HH,��0��'���&�25

�(&��66�#�+�9$��#�66��+,�L�,&���*0�('$$�(

�����66�#����()�9��,$�#�66�9��,$�66�#��+,�����F$$+�0��,�#

�����66����&*��'�66�#��(�)��������'$��#�66�$+,�-

8

���*��+��������������������������������������������������B

DD $*0;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$� #$*0�('$$;�#

�+��*��+25

�$��+����+��@2#��'#/�@/�@ ;B /�@A<B5-

�$��+����+��A2#X�+$#/�#=�@ AC#/�A/�����/�@ ;B /�@A<�5-

�&0$�L��(���@2#���$+#/�B/�@<� ; 5-

�&0$�L��(���A2#X(�+#/�#�Q �A�#/�B/�������/�@J ; 5-

*�+�9$��*@2#&��+#/�=/�@<� ; /�@� ; 5-

Page 248: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

*�+�9$��*A

2#����+#/�#�Q CA�#/��/��������/�@J ; /�A ; 5-

�@;0�'25-

�@;,��0��'���&�25-

�A;0�'25-

�A;,��0��'���&�25-

�@;0�'25-

�@;,��0��'���&�25-

�A;0�'25-

�A;,��0��'���&�25-

*@;0�'25-

*@;,��0��'���&�25-

*A;0�'25-

*A;,��0��'���&�25-

8

(�������������� ���#������� ����������B

Z(&��'�$*0�('$$���'�������$,

Z(&��'�$*0�('$$�X�+$�������$,

&0$�L��(�����$+�������$,

&0$�L��(��X(�+�������$,

�+�9$��&��+�������$,

�+�9$������+�������$,

Z(&��'�$*0�('$$�@ �0��,�A@=

Z(&��'�$*0�('$$�@ ����()�9��,$�@

��+,�����F$$+�0��,�A@=��(�)��������'$��

Z(&��'�$*0�('$$�@ @�0��,�A@=

Z(&��'�$*0�('$$�@ @����()�9��,$�A

��+,�����F$$+�0��,�A@=��(�)��������'$��

&0$�L��(��@ A�0��,�@<�

&0$�L��(��@ A����()�9��,$�B

�+,�����F$$+�0��,�@<� ��(�)��������'$��

&0$�L��(��@ <�0��,�@J

&0$�L��(��@ <����()�9��,$�B

�+,�����F$$+�0��,�@J ��(�)��������'$��

�+�9$��@ B�0��,�@<�

�+�9$��@ B����()�9��,$�=

�+,�����F$$+�0��,�@<� ��(�)��������'$��

�+�9$��@ ��0��,�@J

�+�9$��@ �����()�9��,$��

�+,�����F$$+�0��,�@J ��(�)��������'$��

�+�9$������+����)��$,P

�+�9$��&��+����)��$,P

&0$�L��(��X(�+����)��$,P

&0$�L��(�����$+����)��$,P

Z(&��'�$*0�('$$�X�+$����)��$,P

Z(&��'�$*0�('$$���'����)��$,P

Page 249: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�������� ����������

L �����#����������������������������������������������������������������

���������%�������������������������������������������������������������������

����������������AA���������������������������!�����F����������������

����������������

���� ��� ,�����#� �����#� �� ��� �����-#� �������� ������� �� �� ��� ��� ������

����������������� ���������������(�������� �������������G����������� ����

��������#����"�� ��#������������ ��������������"��*�!�!3*��������� �������������

��� ���� ,)�*���,��� ���� !�!3*�#������� ��� ���� ����� ���� ������� ����� �����

* �"�7**��6����#������ ��� ����������� ������������������ ��"���������

�������������������������������������������� ��������������#�������������

��������� �������������� ���������������������� ��!�������������!

���#����� �� ������ ���� ���������� ,��� ����������������* �"�7**� ����

������������"��*�!�!3*�-����������������B

�)�*���,���*#2��#�!� �!�!3*�

���*�!�!3*�

� �"�7**

��������������������������.�����3������#�������������������"�����

,/�����-���������� ����������'�����������������������#�������� ����������

+����AA� ����������������������������������� ��������������� ���'������

������������� �������������������������� �������������������&��� ��������

������������������%��#� �������#� ��'���������������� ������������������������

���������� �������������������#���������#�������������������������������#

���'��������������������������������

�� ������������������������������������������������������!#�9�����#����������!����

#���������������������������� ������������#�����9������ ��������������6���������

�����"������������#����������� �������������#����������B

#"!,,���8��)9"�#�!?�����!�*�9?��)9"�#�#

&

44���F#"!,,��F��*#"!�!����,

'/

Page 250: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

������������������������������!�������������������������������"������

������������������������ �������� ��� ���������������������������������

��������������� ���������

�����������������������������������������#������������������"������#�������

����#������������������������������������������������������ ���������4�������

��������������������������� �����������������������������"������!��

�����������������������������#��������� ����"�� �������B

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

������F��$

0&F���H

F��$25����(&��66�#�(+���&���+9�3F��$3#�66�$+,�-�8

YF��$25����(&��66�#�$���&���+9�3F��$3#�66�$+,�-�8

8-

��������H�0&F����F��$

0&F���H

�25����(&��66�#�(+���&���+9�3�3#�66�$+,�-�8

Y�25����(&��66�#�$���&���+9�3�3#�66�$+,�-�8

8-

������F

0&F���H

F25����(&��66�#�(+���&���+9�3F3#�66�$+,�-�8

YF25����(&��66�#�$���&���+9�3F3#�66�$+,�-�8

8-

�������

0&F���H

�25����(&��66�#�(+���&���+9�3�3#�66�$+,�-�8

Y�25����(&��66�#�$���&���+9�3�3#�66�$+,�-�8

8-

������,�H�0&F�����/�0&F����F/�0&F�����

0&F���H

,25����(&��66�#�(+���&���+9�3,3#�66�$+,�-�8

Y,25����(&��66�#�$���&���+9�3,3#�66�$+,�-�8

8-

Page 251: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�+��*��+25

,�,@- DD�,$)�+$��+���+�$�()�3,3

8

6����������������������������#� ����������� �������������������F���������

�� ��������������������#�F��������������������������������,��(���������������#

,@#���������,�������������������*��+��������#������������������������������

�����������������������������������"�������������������� ���������

���������������� ���'���� ��B

�(+���&���+9� 3F��$3

�(+���&���+9� 3�3

�(+���&���+9� 3F3

�(+���&���+9� 3�3

�(+���&���+9� 3,3

�$���&���+9� 3,3

�$���&���+9� 3�3

�$���&���+9� 3F3

�$���&���+9� 3�3

�$���&���+9� 3F��$3

%���� ������ ���� �������� ��������� ��� �� �������������� ���������� �������

��������������� ��������������G�������������� ���������"������������

���������������������������������������������!�!����#�� !�!�����������

�����������������������+$�+�9$�#������������������������������������B

$*0�('$$

�&0$�L��(�

$*0�('$$

*�+�9$�

��+$�+�9$�

�������� ����������������������C� ������������'����������������������

��������"����������������'��������������������������0�2�

Page 252: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

4������ )��������

S������������ ���������������������F������ ������������������������������

�F����� ������������������������ �������������������������������������������

�AA��� ������������� ��� �����

������������ �������������������� ������������������������������������������#

����������������������������������������������������������������#�����������������

�� �� �������� ������ �F���#� ���� �� �� �� ����� �F���� ����� ��� ����� �� ���

������

������� ���� �!7������� ��������� �� ���� ������ * �"�7**� ���� ���� ������� �����

!�!3*���*��'������������������������������� ������������������,* �"�7**-��� �B

* �"�7**�*@/

!�!3*�� @/

* �"�7**�D*�

������� ������������ ���������*@B

*��G�N*@/

���������������������B

*�5-�!7$%/

�������������������* �"�7**88�!7$%��������� �������������� @B

*��G�N @/

,���������G����������-#�����������������B

*�5-�!7$%/

����������������������������* �"�7**88�!7$%#������������� !�!3*��������������!7#

������ �������� ��� ���#� �� ����� !�!3*�88�!7$%#� ��'�� ����� �� ����� �� �� �

!�!3*���+����������� ����������������������������������� �����������������

�������������������������������������������������������!������ ������������

*�������������������������������������������������������������������������

������������������� ������� �������F������������������ �����������

������� ��������������������F�������������� ���

���� ��� �������������� ��� �������� �� �������������AA���������������

�������������������������AA������"��������������������� ��� ����B����

��������* �"�7**88�!7$%���������� ������������)!"�����������������������������

* �"�7**�� ������������������� �����*���������������������������������������

����� ��� ����� ��� ����������� �����#� ����� ����� ������� ���������� ��������� �����

�����������������������

S���������������������������������)!"���������������������������������������

�������B

*@1�!7$%/

Page 253: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

6����#�������������������������������������� �������������������������F���#

�������������������������������������������������������������������������F����

*��G�N @/

*�5-�!7$%/ 44�#!""�F !�!3*�F�#��7��������)!"�F�!7F

%���������������������������������������������������������������������������

�����������������������������������������������������������

Page 254: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

������&������+������)��������

6��'��������)!"��������������� �������* �"�7**��������#������������� ���

�� ��������������������������������* �"�7**#������!7������������ ���"�����������

����������)!"B

44 * �"�7**12

*�) �R)!"���#!����

&���?��� �?�K�����?�K�� ��?����� �K'/

#"!,,�* �"�7**

&

����*#�*�8

#2!��D�! */

#2!��D�!�*�����2/

���� �������)!"� �"�7**��/

,�!��#�����* �"�7**��/

����3�!�*/

R)!"���#!����� * �"�7**[)!"/

�"�!��!##) �!7/

�)9"�#8

44�#��,��)#���

* �"�7**$%/

����)!"�������!7$%/ 44�����)!"��)�#����P

'/

#"!,,��*#2��#�!��8��)9"�#�* �"�7**

&

����!�*8

�"�!��2�)�"7 !�*/

������)������/

�)9"�#8

44�#��,��)#���

�*#2��#�!�$%/

�������� ��*$���%/������44�,#!"*���#�* *��

������!7$%/

'/

#"!,,�,)�*���,���8��)9"�#�* �"�7**

&

����!�*8

�"�!�� ���2"7�!7/

�)9"�#8

44�#��,��)#���

,)�*���,��$%/

������!7$%/

'/

Page 255: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

������*�+�9$��H�0&F����$*0�('$$

0��L��$H

)�(���*(+���'��'-

)�(���F(+&�-

0&F���H

DD��(+���&��(�

*�+�9$�25-

L(�,�0�'25-

8-

��� ������ ��������� �� ���� �������� ��� �� ��������� ��� ���� ���� ����

$*0)&+�;�00B

DD $*0)&+�;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

>�+��&,$�6�����+9?

>�+��&,$� #$*0�('$$;�#

DD������,$)�+$��+,��+�������$��������*$*F$�

�+��$*0�('$$HH$*0�('$$�(�"�@ -

DD������,$)�+$�3$*0�('$$3�*$*F$��)&+���(+��)����

$*0�('$$HH$*0�('$$25

�����+�*$�+�� !-

����0'2+�*$�+/�# ��$��*0�('$$#5-

+�*$�"�+$1����������$+2+�*$�+5�7�@!-

����0'2+�*$/�+�*$�+5-

,��$�) �����"��W��-

�+,�L�,&���*0�('$$�(�"�$*0�('$$�(77-

9��,$�"�@-

$*0�('$$b&���"�����-

���&*��'�"� ; -

8

L(�,�$*0�('$$HH0�'25

�(&��66�# ��$:������$*0�('$$�0��,P#�66�$+,�-

8

DD������,$)�+$�3�$��+����+3�*$*F$��)&+���(+�

�$��+����+HH�$��+����+25

����0'2+�*$/� #�$��+����+#5-

Page 256: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�(&��'���$�"�@ ;B-

&+�(+�(����"� -

8

L(�,� �$��+����+HH0�(*(�$2�+�� �+��$*$+�5

9��,$�7"��+��$*$+�-

8

L(�,� �$��+����+HH0�'25

)�(���0�'��$�M-

0�'��$�M�"��(&��'���$�.�B -

���&*��'�7"�0�'��$�M-

�(&��66�#�$��+����+�0��,P#�66�$+,�-

8

DD������,$)�+$�3�&0$�L��(�3�*$*F$��)&+���(+�

�&0$�L��(�HH�&0$�L��(�25

����0'2+�*$/� #&0$�L��(�#5-

*(+���'��'�"�@J ; -

8

L(�,��&0$�L��(�HH0�'25

���&*��'�7"�*(+���'��'-

�(&��66�#&0$�L��(��0��,P#�66�$+,�-

8

DD������,$)�+$�3*�+�9$�3�*$*F$��)&+���(+�

*�+�9$�HH*�+�9$�25

����0'2+�*$/� #�+�9$�#5-

*(+���'��'�"�A@ ; -

F(+&�������"�A@ ; -

8

L(�,�*�+�9$�HH0�'25

���&*��'�7"�*(+���'��'-

�(&��66�#�+�9$��0��,P#�66�$+,�-

8

Page 257: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����������� !����������������������"�����������������B

44 * �1#��

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*� A* �"�7**12A

���� !��$%

&

* �"�7** *@/

�*#2��#�!� �@/

,)�*���,�� ,@/

* �"�7** D*��G�N*@/

�*#2��#�!� D���G�N�@/

,)�*���,�� D,��G�N,@/

*�5-�!7$%/ 44�#!""�9!,*5#"!,,�F�!7F

*��G�N�@/

*�5-�!7$%/ 44�#!""�F�*#2��#�!�F�F�!7F

*��G�N,@/

*�5-�!7$%/ 44�#!""�F,)�*���,��F�F�!7F

'

(�������������� ���#��������������������B

�!,*5#"!,,�* �"�7**��!��P

�*#2��#�!���!��P

�)�*���,����!��P

%����������������������� ��#�����������������F���� �����*������������������������

�������*#2��#�!���������F�����@B

*��G�N�@/

&�������*���������������������� ��������� ���*#2��#�!��D#�����#�����������������

������������B

*�5-�!7$%/

����������������� �����!7������������������ ��� ����������������� �*#2��#�!�� ��

������������������������"��������(����*�������������������������������,)�*���,��

�������F����,@#������������������*�5-�!7$%/��������,)�*���,��88�!7$%��������������

���������������"�������

%������������������������������������������������������������#������#����������

�����#� ���� ����� ������ ��������� �� ���� ��������� ��� ���������� ��� �� ����

�������#�������� ��� ����������������� ����������������#� ���� ���������

������� �������� ������ ������� ��� �������� ��� ����� ��� ������ �� ��� ����#�

�������#���������

Page 258: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

��'���>������������������������������������������������������������������������

��������������#����������������������������������������������������������� ������

���������������������������������������������

I�������������������������������������� ������������������������������������

��������������������������������������������������#������������������������������

�����������������������

%����� ���������� �������� ������� ��������� ���� �������� ��������� ��� ����

������������������������������������#���������������������������������

�����

�#������ ������

%�� ��������� ��������������������������������#������������������������

����������� ����� ���������������������� � ���������������������� ����������� ���

�����������������������������������������������

���* �"�7**����������G�����������"�� ��������������������������������������#

��'��������������������!����S�'��������������#����������!#��������#����

���� �� �#� ���� ����� ��� �������� ����!����.���� ���� ������ �� ������ ���

* �"�7**������������������������* �"�7**88�!7$%����������������������D���

��������� ����� �� ��� ���� ����� ����� ������� �� ������� ���� ������

* �"�7**88�!7$%����������� ����������������"�� �������������� ���

�����������* �"�7**88�!7$%������������ ����������������B

�!,*5#"!,,�* �"�7**��!��P

+���������#���������� ���#����������������������������������������������

�����������������������������!7�������������������������������#���������������

������ ���������(��������������������������������������������#�����������

������������������������������������������������������B

����)!"�������!7$%�G�./

9�����������������������* �"�7**88�!7$%�����������������������������������

#������ ���������� ��� ���������� ���������������������������������

����������������������������)�����#���������������������������������� ���������

���������������������������������

Page 259: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

���������

� ����������������������������B

#"!,,�!

&

�)9"�#8

�����/

44

'/

#"!,,�9�8��)9"�#�!

&

�)9"�#8

#2!��!/

44

'/

#"!,,�#�8��)9"�#�9

&

�)9"�#8

��)9"*��/

44

'/

����������������������������������������������������#�!������������������

�������������F�������� ��#B

#�#S��,�$@1K;<?�F:F?�H%/

� ;����������������������

#"!,,�* �"�7**

&

����*#�*�8

����3�!�*/

����* �"�7**��/

#2!���! *T;.U/

�)9"�#8

������!7$%/

�������� ��*$%/

'/

#"!,,� !�!3*��8��)9"�#�* �"�7**

&

����!�*8

��)9"*�9��),/

��)9"*��!7 !�*/

�)9"�#8

������!7���),$%/

'/

��������������������������������������������������* �"�7**#������������

���������������� �������E������������������������������������ ��������

Page 260: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

.���������������������������������������������������������������������

���� ��������� ����� ��� ���� ���������� �� ��� ��������� �� ���� ������ !�!3*�� ��

����������������������� !�!3*������* �"�7**����������

Page 261: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�� ��+����� )��������

;������ $����� ��������! ������������ �,�

���!!� ��������! ���������������������������� �,�

�'������� ������ ������������������������ ��,

3� ����� �"��� �����$������ ������������ �5&

�'����!�! �������������������������������������� �5�

Page 262: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�������)���������������

)���������� ������������������������ ���/���� ��������������������������

�AA�,�����-����������� ������ ����������������������� ���������� ���,������������

��������� ��������������������-#������������������������������ ������ ����

�"�� ������������������#��� ��������������������������� �����������������������

�� �" ���� ���� �� ������������ ������ ��� �����#������������ ��� ������"�� ������

�����

5�������� ������� ������� ����

������������������ ��������������B

�* �"!�*+#"!,,� �) -

�) � ��$�) ��@?��) ��<%/

+#"!,,��) -� ���������� ����'������� ������������� ���������#"!,,� �������

����"���������!���������������-�������'����������������#"!,,����B�������

���������������� �!�����AA��������������������������������������������

�����������������������������&�����������!�����������������������#��������

�AA���������������������7�*�! *���� �����#"!,,�������������"��,#"!,,���������

�����-�

����� �� ����������������������������!���������� ���S�����������������

����������#"!,,���7�*�! *��������������� ����� ��������������������������

���������� �� ������#�#"!,,4�7�*�! *��������������������� ��������.���

������������������������������G������������� ������������������������������

�������������������� ����� ����������������������������������� ������ ����B

44���"*3!"��* �"!�*

�* �"!�*+�7�*�! *��) @?� �7�*�! *��) <-

�) � ��$�) @��@?��) <��<%

&

44

'

44����""*3!"?� �,,��3��7�*�! *

�* �"!�*+�7�*�! *��) @?��) <-

�) � ��$�) @��@?��) <��<%

44����""*3!"?��)�"�#!����

�* �"!�*+�7�*�! *��) @?��7�*�! *��) @?��7�*�! *��) <-

�) � ��$�) @��@?��) <��<%

44����""*3!"?��) ;�����),*�

�* �"!�*+�7�*�! *��) @?��7�*�! *��) <?��7�*�! *��) ;-

�) � ��$�) @��@?��) <��<%

������������������ ������� �� ����������_������������������������� ����

�����������������������B

Page 263: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

44����*#"!�!����

�* �"!�*+�7�*�! *�:?��7�*�! *�7?��7�*�! *�V-

�) � ��$:��@?�7��<?�V��;%/

44����*��������

�* �"!�*+�7�*�! *��) @?��7�*�! *��) <?��7�*�! *��) ;-

�) � ��$�) @��@?��) <��<?��) ;��;%

&

44

'

:��������� ��� ��)�������

S�������������#�����������������#�������������� ���������� �������������������

����� ������������������������������������������#���������������������� ���������E

���� ����"�� ��������� ���/������������ �����%������������������������#

������������� ����'���������������������������������������������� ���������������

�������������� ���������������������������������������������������������������

��� �������������

&���������������������������������������������� ������������������������ ��

%������������ �������������������������������������������

?���3��)����� ������� �&���

S������������������ ��#�������������������!���������� ��#�������� �����������

��������������� �������������������������� ��������������������������#��������

������������ ����������������� ���� ��� ������������������������������

6��'������"�� ��� ���#��� ���"@1#��B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#"!,,�#����

&

����!�*8

����:S#����/

����7S#����/

�)9"�#8

#����$����:?�����7%

&

:S#�����G�:/

7S#�����G�7/

'

Page 264: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�+���$��25����$�&�+2GI�((�,5-�8

�+���$��25����$�&�+2'I�((�,5-�8

�+��(0$���(�62�((�,N��A5-

8-

DD���)&+���(+��$*0���$�,$�������(+;�W�$�3�$��$�3-���$�(FL�(&��3*�+3

DD������&�$,�F'���$��77��'��$*�)(���+(��$��0&�0(�$

�$*0���$6�'0$+�*$� (FS?

(FSN��$��$�2(FSN�(@/�(FSN�(A5-

�+��*��+25

�((�,��@2�/@ 5-

�((�,��A2=/@@5-

DD����(*0��$��((�,�(FS$�����+�*�+/

DD���&��+9�(L$��(�,$,�6�(0$���(�

�((�,��<�"��$��$�2�@/��A5-

�(&��66�#*�+�*&*��((�,���H�#�66��<;�$��25�66�#�#�66��<;�$��25�66�$+,�-

,(&F�$�,@�"�<;@B@�C-

,(&F�$�,A�"�A;J@QAQ-

DD����(*0��$�,(&F�$�(FS$�����+��$��$�/

DD���&��+9�F�����6�(0$���(�

�(&��66�#*�+�*&*�,(&F�$���H�#�66��$��$�2,@/�,A5�66�$+,�-

8

�$*0���$6�'0$+�*$� (FS?

(FSN��$��$�2(FSN�(@/�(FSN�(A5

DD���6�(0$���(��(L$��(�,$,��)�)&+���(+��+���+����$,�)(���'0$+�*$��'0$/

DD���(��$�1��$�F&���:�+�6�&�$,

�)�2(@�6�(A5

�$�&�+�2(@5-

�$�&�+�2(A5-

8

DD���,$)�+$�(L$��(�,$,�6�(0$���(�

�+���((�,HH(0$���(�62�((�,N��A5

�)�2GI�((�,�6��A;GI�((�,5

�)�2'I�((�,�6��A;'I�((�,5

�$�&�+�2@5-

�$�&�+�2 5-

8

Page 265: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

(�����������������#������ ���"*,,*��D���� ��#������#��������� ���������������

���������������� �������� �� �����AA��������D� �������#� ��� ������������� �� ���

#������� �#�����������������������������F��������� ��#������ �������#����

������+� ���������������������������#������������(��������������������������

#������F����#�#@�����#<�� ���������������B

#�����#;�G�"*,,*�$#@?�#<%/

���������������"*,,*����� �������������������#������� �������������������������

����������������������#������F����#;�� ����� �������#@�����#<�������

����� ������������+��(������������ "*,,*������������������ ���������� �� �

��)9"*#�����������+� ���#����������������������������#������������� ��

�����������������! ������������ ������������� ������������� ������������B

��� ) �#������,8�H�@.

��� ) ���)9"*��,8�<1K@I<I

Page 266: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����� �������

������������ ������������������������������������������������� ������(��������#

����������������������������F������������� ��������� �����������������

(���#����������������AA#�������������������������������! �������������

�����������������#��������������� �����#�������������������������) 9*������������

�������������� ���

S�� ������� �� ������ ��� ����� ��� ���"���� �� ������ ��������������� �� ��� ����

� ������������ ������������* �"!�*������������������� ����������!�������

���������������������������������� ������ ������������� �����������

��������������������

L�������������� �����#�������������������������������������������������� �������

��������������������� ����������������������������������F����#��������������� �����

���������������������������������*��'������������������ ������������������

�) 9*�������B

44���#"!,,��* �"!�*��*#"!�!����

�* �"!�*�+�7�*�! *��) �7�*-

#"!,,��) 9*�/

1

1

44����*������������!�#"!,,���,�!�#*

�) 9*�+���-���/

1

1

44����7�*�! *��* �"!�*��*��������

�* �"!�*�+�7�*�! *��) �7�*-

#"!,,��) 9*�

&

����!�*8

�) �7�*��/

�)9"�#8

�) 9*�$%

&

��G�./

'

�����3*�S�) 9*�$%�&�#���--��/�'

����������S�) 9*�$%�&�#�)��++���++�*��"/�'

'/

��� �������������#������������������AA#���'��������������� �� ����� ���� C����

���'�� ������������������������� ����������� �����������������������

(����������������� ���������#����������������������������������������������

�� ��������������������������������� ���������������������������������� ���!

������S����������������������������������������������������������B

�) 9*�+���-���/

Page 267: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

9�� ���� ���������� ��� ��� �� ������ �F���� �� �� �� �) 9*�+���-� ����� � �������� ���

�������������� �� ��� ������� ������� ��� ���������� ������� ���� �����!��� �� �

� ������������������������������������������� ����� ��������) �7�*���������

���������������������������������������� ��������) �7�*�� ��������"��������������

�" ��������������������������������B

#"!,,��) 9*�

&

����!�*8

�����/

�)9"�#8

�) 9*�$%

&

��G�./

'

�����3*�S�) 9*�$%�&�#���--��/�'

����������S�) 9*�$%�&�#�)��++���++�*��"/�'

'/

��������������������������������������������B

�) 9*����/

9�#��� ����� ������

6��'������������) 9*�������� ���B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

�* �"!�*�+�7�*�! *��) �7�*-

#"!,,��) 9*�

&

����!�*8

�) �7�*��/

�)9"�#8

�) 9*�$%

&

��G�./

'

�����3*�S�) 9*�$%�&�#���--��/�'

����������S�) 9*�$%�&�#�)��++���++�*��"/�'

'/

���� !��$%

&

�) 9*�+#2!�-��#/

#�)��++�A���*��!�#2!�!#�*�8�A/

�#13*�S�) 9*�$%/

Page 268: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�(&��66�#�������$����H�#-

+�;0��+�I+&*F$�25-

+&*F$�6�+�?�+�-

�(&��66�#�+�$���+��+�$9$�H�#-

+�;9$�I+&*F$�25-

�(&��66�#�+�$9$����H�#-

+�;0��+�I+&*F$�25-

+&*F$�6,(&F�$?�+,-

�(&��66�#�+�$����,(&F�$H�#-

+,;9$�I+&*F$�25-

�(&��66�#�(&F�$���H�#-

+,;0��+�I+&*F$�25-

8

(������� ����� ��� ����������� �������������#��������� ������#� �+������,(&F�$

�� ����)��������������#��������������� ������������+���������������#��+�����

,(&F�$�� �����������������9$�I+&*F$���"������������������������������� ��

���������������������+�� ���������������'��������#���+�����������"���������������

������������������� �� ������������" ��������������� ����� �� ������� ���

�������������9$�I+&*F$�#���+��" ������� ���������+������������������������,(&F�$�

��������'���� ������������������������#������� ��� �������������(���������

���� ���#��������������� ��:�� �����G������,������ �������������-B

�+�$�����������$�H��

�������$����H��

�+�$���+��+�$9$�H��

�+�$9$����H�J

�+�$����,(&F�$H��-@����

�(&F�$� ��H�A;=B�J�

����� ������� �&���

��� �����"� �� ������ ��� ������ � ���� ����������(����� ��� ���� ���'�� ����#� ���

��� ����������"���������G�������������������� ������������ ����������G������������B

+&*F$�6�+�? +�- DD����+���+�$�()��$*0���$������

+&*F$� +�- DD����+���+�$�()�+(+:�$*0���$��������+&*F$�

)� ���� ��� ��������������� �$*0���$6�'0$+�*$�+&*�'0$?� ������+&*F$�-� ���

�����������+&*F$������� ������������� ������+&*�'0$�,������ ������������� �

� ������-�������� �������� �����B

+&*F$�6,(&F�$?

������� ��� ����������������������������������,(&F�$������������������� ����������

+&*F$��������� ��������� ������������������� ������������� ���(���������

��� ��������������#���� �������� ���� �� �� � �������+&*F$�� ��� �� �������� �

Page 269: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�) 9*�+�) �7�*-1��������� ���� ��� ��������������#� ���� �� �� � ��������������

����������������������������������������������3*�S�) 9*������������������

�������������� ����#�������������������������������������������������B

44����)�#������*#"!�!���������* �"!�*

����� 3*�S�) 9*�$%/

44����)�#������*���������*:�*��!""7

�* �"!�*�+�7�*�! *��) �7�*-

����� �) 9*�+�) �7�*-883*�S�) 9*�$%

&

#���--��/

'

��������������������#�������#��������������������� ����#�������������������������

�������� ��������������"������ ��"����������������������������������������

�G�����������!��� �������������B

����� �) 9*�883*�S�) 9*�$%

S������� ���"� ���� ���������� �� ���� ��� ����� �������� 3*�S�) 9*������� ���

��� ������ ������������* �"!�*+�7�*�! *��) �7�*-������ ������������������������

�� ���������� ���) 9*�+�) �7�*-�

��������� ��������������������� ������������������������ ��������������AA

����������������F������S����������������������������� ��,���������������������-

�����������������G�������� �������������� ����������������������������������

����� �������������� ����

���������������� ��������������B

�* �"!�*+�7�*�! *� �) �7�*-

#"!,,��) 9*�/

+�7�*�! *��) �7�*-����������� ����'������� ������������� ����� �� ������

������������AA�����������!���������� ���S����������������7�*�! *�,�#"!,,-

��������������� ��� ������������� ������������������������������������� �

������#��7�*�! *��������������������� ��������%���������� ����� ������

���������������������'����������������#������������������������ ������!

�������� ������������� ������������������������������ ������������������

���������" �������� ������������ ����� ������������������������� ������#���

������������������� ������#����������������������������� ��������������B

�* �"!�*�+�7�*�! *��@?�����*:�@?��7�*�! *��<-

#"!,,� ,� *�7�*�! *

&

44

'/

Page 270: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���,� *�7�*�! *���� ������ ������������" ������������������� ����������

�� �� ������������������������������� ������������������������,� *�7�*�! *

������������������B

,� *�7�*�! *+��)9"*?�H..?�#����-�,#/

S���������������!����� ��#����!���������� ����������������" ���������������

��� ����� ��������� S�� ���� ������"� ����� ��� ���� ���� ��� �������

� �������������������������������#������#������������������������������������

�� ������ ������ �������� ��� ���� ��� ����������������)��"�� ��#� ���� �������

������������������������ ��������B

,� *�7�*�! *+��)9"*?�H..=?�#����-�,#/

��� �� ����� �������� ���� �" ������ ������� ���� *:�@� ��� ���� ��� ����

����������������������������� ��,)�,�3�*�����-���H..=�

.��� ��������� ����

��������� ��������������������������������������������"�������������������

� ���������������������������������������������%���������������������������������

�������������������F��������� ���������� ������������������ ���������������

����������������������������� � ������"�� �����������������������������

������������������ ����������������������� ����������������#��������������������

��� �����#����������

6��'��������������� ������� �����������������!��!7��������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

�* �"!�*�+�7�*�! *�,"���7�*-

#"!,,�!��!7

&

����!�*8

��� ,�V*/

,"���7�* D!���/

�)9"�#8

!��!7$����,"��,�G�@%

&

,�V*�G�,"��,/

!����G��*0�,"���7�*T,"��,U/

'

�������""S!��!7$%/

�������,�S!��!7$%/

W!��!7$%�&��*"*�*�TU�!���/�'

'/

Page 271: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�+��*��+25

����'6����?���2@ 5-

�(&��66�#��������������$������'#�66�$+,�-

��;)���I����'25-

�(&��66�#����'��(+�$+�����$H�#-

��;,��0I����'25-

����'6,(&F�$?��,2�5-

�(&��66�#�������,(&F�$�����'#�66�$+,�-

�,;)���I����'25-

�(&��66�#����'��(+�$+�����$H�#-

�,;,��0I����'25-

8

DD��������1(&�,�F$���$�)&+���(+��$�,$���)����1$�$�+(�����$*0���$�*$*F$�H

DD���L(�,�����'HH)���I����'25

�$*0���$�6�'0$+�*$���(��'0$?

L(�,� ����'6��(��'0$?HH)���I����'25

)(��2�+����"� -���6���O$-��775

�(&��66�#�+�$��,���H�#-

��+�??��0����!-

8

8

�$*0���$�6�'0$+�*$���(��'0$?

L(�,� ����'6��(��'0$?HH,��0I����'25

)(��2�+����"� -���6���O$-��775

�(&��66��0����!�66�#�#-

�(&��66�$+,�-

8

(�������������������� ���������������'�������� ��� �����������������������������

��������������������� ������������K������������������ ���������������

�F����������� ����������� �������������������������������� �����������

(���������������� �� ���������(��'0$����������������������������������

�����F����#����������������K��� ������������������ ��������������������B

����'6����?���2@ 5-

������������������������������� ������������#����������#��������F������

�� �������� ����������������������#�)���I����'�����,��0I����'#����������������

(������������������������� ������������������ ����������������������"��������

���������������)���I����'��������B

�$*0���$�6�'0$+�*$���(��'0$?

Page 272: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����� !��!7+,"���7�*-88��""S!��!7$%

� ���������������������������� ���������������� ��������������������� �� ������E

����������������������������� ����������������������������!��!7������������������ �

� �����������,"���7�*E������������������������������������

(���������������#2!���� ��������������������� ����������#�,"���7�*���������������

�����#2!������������""S!��!7��������������� ������������������������������

��������������������������"�� ��#������������)9"*� �� ������ ��""S!��!7�������

��������� �� ���� ������ ������ �� ������ �������! ���� �������� 6��'�� ���

���'���� ��B

��""�!�#2!�!#�*��!��!7

���*���!�!8��

���*���!�!8��

���*���!�!8��

���*���!�!8��

���*���!�!8��

���*���!�!8��

���*���!�!8��

���*���!�!8��

���*���!�!8�

���*���!�!8��

���!7�#���*��,�!�*8�!�9�#���*���3�2���\

��""�!���)9"*�!��!7

���*���!�!8��-�

���*���!�!8��-�

���*���!�!8��-�

���*���!�!8��-�

���*���!�!8��-�

���!7�#���*��,�!�*8�@1@�<1<�;1;�L1L�H1H

.������ ����������

(�� ���� ������ ��� ����� �������� ��� ���� ��� ����� ���� ��!��� ����� ��������

6��'������� ����"�� ��#������������������������ ���������������������������

������������������� �������������� ����"�� ���������������!��!7��������������

������������������������������ �������������������!��!7���������� �����������������

)���#���������������������������������������� �����B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

�* �"!�*�+�7�*�! *�,"���7�*-

#"!,,�!��!7

&

����*#�*�8

�����,�V*/

,"���7�*�D!���/

Page 273: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�)9"�#8

!��!7$����,"��,�G�@%

&

,�V*�G�,"��,/

!����G��*0�,"���7�*T,"��,U/

'

����� ��""S!��!7$%/

�������,�S!��!7$%/

W!��!7$%�&��*"*�*�TU�!���/�'

'/

�* �"!�*�+�7�*�! *�,"���7�*-

#"!,,��*� S!��!7�8��)9"�#�!��!7+,"���7�*-

&

�)9"�#8

�*� S!��!7$����,"��,%� 8�!��!7+,"���7�*-$,"��,%

&

'

����� �*� ��!�*$%/

����� ��,�S�*� S!��!7$%/

'/

(���������������������*� S!��!7���������� ������������������� ��������������

!��!7���������������������� ��!��!7+,"���7�*-� ���������������

(������ ���� �*� S!��!7� ������ ��� ����#� ���� �������� ������ ������ �� ������

�������#�,"��,#���� ���� ��������������� �*� S!��!7#����� ������ ������������

��������������������������������������� �����!��!7��S������������������ �

������������������������������ ������������������!��!7+,"���7�*-1

)������#������*� S!��!7���� ������������������������������������ ������

���������� �� ���� ������� ������ ��� ����� �*� S!��!7��(�� ������� ���� �����

���������������!��!7���������� ������������B

�* �"!�*�+�7�*�! *�,"���7�*-

����� !��!7+,"���7�*-88��""S!��!7$%

&

����$������G�./���+�,�V*/��66%

&

#�)��++�A���*���!�!8�A/

#���--�!���T�U/

'

'

�* �"!�*�+�7�*�! *�,"���7�*-

����� !��!7+,"���7�*-88��,�S!��!7$%

&

����$������G�./���+�,�V*/��66%

#�)��++�!���T�U�++�A�A/

Page 274: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

#�)��++�*��"/

'

(��������������*� S!��!7������������������������#�� ������������������������

������ �� �*� S!��!7+,"���7�*-B

�* �"!�*�+�7�*�! *�,"���7�*-

����� �*� S!��!7+,"���7�*-88��,�S�*� S!��!7$%

&

#�)��++�A����*��,�����*� ��!�*��!��!7�!�*8�A/

����$������G�./�!���T�U�PG�$,"���7�*%.�/��66%

#�)��++�!���T�U�++�*��"/

'

�* �"!�*�+�7�*�! *�,"���7�*-

����� �*� S!��!7+,"���7�*-88�*� ��!�*$%

&

#�)��++�A�)""��*� ��!���3��2*�!��!7A

++�*��"/

!���T,�V*U�G�$,"���7�*%./

'

��� !����������������������������������������������������� ������*� S!��!7����

��������������� ��""S!��!7��������������������������������!��!7������� ���� ��

����������������������������������������� ���������� ����������������

�����

��������������������������������������������������������������������

����� ��� ������ ����� ��� ���� �*� S!��!7� ������ ��������� �*� ��!�*� ���

��,�S�*� S!��!7�� ��� �*� ��!�*� �������� ����!���������� ���� ���� ���

��,�S�*� S!��!7���� �������������������������� ������������������ ���������

���� !��$%

&

�*� S!��!7+#2!�-� !#$@.%/

#�)��++�A��""�!�#2!�!#�*��!��!7A�++�*��"/

!#1��""S!��!7$%/

!#1�*� ��!�*$%/

!#1��,�S�*� S!��!7$%/

!��!7+��)9"*-� !�$H%/

#�)��++�A��""�!���)9"*�!��!7A�++�*��"/

!�1��""S!��!7$%/

#�)��++�A���!7�#���*��,�!�*8�A/

!�1��,�S!��!7$%/

'

Page 275: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������� �������

��������������#���'����������������������"�� ���!������������������� �����

����AA��S������������������������������������������������ ���

����������

���������� �������� #����

��� ��������#�*:#*��@1#��#� �� �������� �"�� ��������������� �������

�����������������

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

����� �2��0S�*,�$���%/

#"!,,��9

&

�)9"�#8

������������ * 9*�/

'/

���� !��$%

&

�������������"!3�G�</

����������7

��������&

�����������������2��0S�*,�$�"!3%/

��������'

��������#!�#2$#��,��#2!��D��%

��������&

����������������#�)��++�A�����#2!�!#�*��#!�#252!��"*�A�++�*��"/

����������������#�)��++���++�*��"/

��������'

��������#!�#2$�9N��9S��,�%

��������&

����������������#�)��++�A������9\*#��#!�#252!��"*�A�++�*��"/

����������������#�)��++�A�* 9*���!")*��,�A�++��9S��,�1 * 9*��++�*��"/

��������'

'

������2��0S�*,�$�����"!3%

&

�����������$�"!3�GG�@%

�����������������2��0�A�!��#PPPA/

��������*",*

�����������$�"!3�GG�<%

Page 276: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������

����������������(F�(FI�+��-

����������������(FI�+��;*$*F$��"��-

�������������������(1�(FI�+��-

��������8

8

(����������������#����(1I�$��#��������������������������*��+�� ���������������

��������������������������������'���������������������������������������

����������(1I�$��������������������#�����"�� ������������ ��-�#��������� �

���������� � �����������������������������������'������

������������#����������������C�"�� ����'�����������B�������������������� ������

)��9���������������(1I�$������@#�����"�� �������� ���(+��������.��������E�������

���������A#������"�� ��������������������� ��(F�� ���������������������������

���� ��'������ ���*��+� �� ��������������� ������ �� ���� ��� ������������ )��9� ���@#

���(1I�$����"�������������������������!�������"�� ����#��+��PPP#�� ��������!

���� ������ �����B

�+�(��������$�������:��+,�$�

��+��PPP

���������������)��9����A#����(1I�$����"������������������(F��"�� ����(FI�+�������

������������������������������������������������ ������ �����B

�+�(�(FS$��������:��+,�$�

$*F$��L��&$�����

9������)������������������&�#����

��������������������������������"�� ����������������������������(1I�$��

��� ���� ����� �"�� ��� ��� ���� ������� ��� �"�� ����� ����� ��� �� �������

�����������������������(1I�$���

DD�$G�$0�A;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

L(�,�+$��@2�+�5-

L(�,�+$��A2�+�5-

L(�,� ���(1I�$��2�+�5-

������(F

0&F���H

���������+��*$*F$�-

8-

Page 277: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�+��*��+25

���������+��)��9�"�@-

����������'

���������

�������������������(1I�$��2)��95-

��������8

�������������2�(+��������.�05

���������

�����������������(&��66�#�+�(��������$�������:��+,�$�#�66�$+,�-

�����������������(&��66�0�66�$+,�-

��������8

�������������2(FN�(FI�+��5

���������

�����������������(&��66�#�+�(�(FS$��������:��+,�$�#�66�$+,�-

�����������������(&��66�#$*F$��L��&$����#�66�(FI�+��;*$*F$��66�$+,�-

��������8

8

L(�,����(1I�$��2�+��)��95

��������+$��@2)��95-

8

L(�,�+$��@2�+��)��95

��������+$��A2)��95-

8

L(�,�+$��A2�+��)��95

���������)�2)��9�""�@5

�������������������(1�#��+��PPP#-

��������$��$

���������)�2)��9�""�A5

���������

����������������(F�(FI�+��-

����������������(FI�+��;*$*F$��"��-

�������������������(1�(FI�+��-

��������8

8

������������#����(1I�$���������+$��@#��������������������+$��A��%����������������

������F������������'���������������"�� �������������+$��A�����������������

��������������������������������� ����� ���������������� ���������������

�������������� �������"�� ���

Page 278: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����3������� ���������

���������������������������������������������"�� �������������������#

������������������������������"�� ��B

DD�$G�$0�<;�00

>�+��&,$�6�(���$�*?

&��+9�+�*$�0��$���,-

L(�,�+$��@2�+�5-

L(�,�+$��A2�+�5-

L(�,� ���(1I�$��2�+�5-

������(F

0&F���H

���������+��*$*F$�-

8-

�+��*��+25

���������+��)��9�"�@-

����������'

���������

�������������������(1I�$��2)��95-

��������8

�������������2�(+��������.�05

���������

�����������������(&��66�#�+�(�3*��+3��������$�������:��+,�$�#�66�$+,�-

�����������������(&��66�0�66�$+,�-

��������8

�������������2(FN�(FI�+��5

���������

�����������������(&��66�#�+�(�(FS$��������:��+,�$�#�66�$+,�-

�����������������(&��66�#$*F$��L��&$����#�66�(FI�+��;*$*F$��66�$+,�-

��������8

8

L(�,����(1I�$��2�+��)��95

����������'

���������

����������������+$��@2)��95-

��������8

�������������2�(+��������.�05

���������

�����������������(&��66�#�+�(�3���(1I�$��3��������$�������:��+,�$�#�66�$+,�-

�����������������(&��66�0�66�$+,�-

��������8

8

Page 279: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

L(�,�+$��@2�+��)��95

��������+$��A2)��95-

8

L(�,�+$��A2�+��)��95

���������)�2)��9�""�@5

�������������������(1�#��+��PPP#-

��������$��$

���������)�2)��9�""�A5

���������

����������������(F�(FI�+��-

����������������(FI�+��;*$*F$��"��-

�������������������(1�(FI�+��-

��������8

8

6�������*��+��������(1I�$������������'������#��������������������������+$��A

��������������"�� ���������+$��A���������������!�������"�� ���#����������!

�����������������������(1I�$�����������������������������"�� �������� ��(F#����

�������������������������������������������*��+��6������������ ���������������

���B

�+�(� 3���(1I�$��3��������$�������:��+,�$�

��+��PPP

)������#����(1�����������������"�� ����� ����������B

���(1-

�����������������������������"�� ����������!������������������������

���������������������'������

Page 280: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

<��������&���������)������

����������������������F��"���������������AA����������������������������

���������������������� ���������������#��������������������8���������������#

���� ��������������������= �������������������������������������������� ��� ��

�� ��������������B

◆ ���������������������� �������������� ��������������� ��������������� ��

◆ ������������������������� ������ �����

= ����������������� ��������������������� �������� ��������������������

��������������������������������������������� ����0������������������������

������ ������������!������ �������������������������������������������������

���������������������= �������������� ��� �����������'���������������������#

�����������������������������������������������!����,0��#2��������B

���$�7�*��$�@%�GG��7�*��$,)�*���,��%%

#�)��++�A��F,�!�,)�*���,��A�++�*��"/

*",*

���$�7�*��$�@%�GG��7�*��$ !�!3*�%%

#�)��++�A��F,�!� !�!3*�A�++�*��"/

*",*

���$�7�*��$�@%�GG��7�*��$"��*�!�!3*�%%

#�)��++�A��F,�!�"��*� !�!3*�A�++�*��"/

L�����= ������>�����#����� ���������� ����������������#�����"�� ���������

����������� ��� ����������������������������������B�C;������������������ ����

��������������������������������#���������������������������� ���������

������������������������������������������������������#������#����������

���������������������� �\'� ���������������������#�����������������AA#��������

������'���.����= ��

-�����)&���� ����+��� ����� �#;����

� ����������= �#���� ���� ���������� ��� �� ���� * �"�7**� ������ �������

��������������� ����0��)������ !����������#���� ����������������� �������

������������������������������ ����������������������������������������

������������ �������������������!�������� ������������#�������������������

!�!3*��#������� �������� �������������,)�*���,���#���������������#������

����

44�������* �"�7**12

*�) �R)!"���#!�����&���?��� �?�K�����?�K�� ��?����� �K'/

#"!,,�* �"�7**

&

����*#�*�8

#2!��D�! */

#2!��D�!�*�����2/

Page 281: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�+�� �+,�L�,&���*0�('$$�(-

������� �+��$*0�('$$�(-

�+��9��,$-

%&���)�����(+� $*0�('$$b&��-

)�(������&*��'-

0&F���H

DD��(+���&��(�

$*0�('$$25-

DD�,$���&��(�

Y$*0�('$$25-

L���&���L(�,�0�'25-

L(�,�0�(*(�$2�+�5-������DD�����$��+��$*$+�

L(�,�,��0��'���&�25-

8-

�������&0$�L��(��H�0&F����$*0�('$$

0��L��$H

)�(���*(+���'��'-

0&F���H

DD��(+���&��(�

�&0$�L��(�25-

DD�,$���&��(�

Y�&0$�L��(�25-

L(�,�0�'25-

L(�,�,��0��'���&�25-

8-

������*�+�9$��H�0&F����$*0�('$$

0��L��$H

)�(���*(+���'��'-

)�(���F(+&�-

0&F���H

DD��(+���&��(�

*�+�9$�25-

DD�,$���&��(�

Y*�+�9$�25-

L(�,�0�'25-

L(�,�,��0��'���&�25-

8-

DD��������(F���)&+���(+��(�,$*(+�����$�����

L(�,�0�'I*�+�9$��I(+�'2$*0�('$$� .5-

Page 282: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

(���������������������������������������������� ���������������� ���

�����* ��)�#1#���

44�������* ��)�#1#��

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�+#,����3-

(��#")�*� A* �"�7**12A

44�������*���*�!��������!"�,*�,�!��#� * 9*�

����* �"�7**88* �"�7**���G�@.../

44�������*���*�F* �"�7**F� * 9*���)�#����,����,�

* �"�7**88* �"�7**$%

&

#2!���! *��TH.U/

#�)��++�A���*���*0�* �"�7**��! *�A/

#���--��! *��/

�! *�G��*0�#2!�T,��"*�$�! *��%�6�@U/

,��#�7$�! *?��! *��%/

�!�*�����2�G��=��/

�������)!"� �"�7**���G�* �"�7**��66/

3�!�*�G�@/

* �"�7**[)!"�G����/

!##) �!7�G�.1./

'

* �"�7**88W* �"�7**$%

&

�*"*�*��! */

�*"*�*��!�*�����2/

'

�����* �"�7**88�!7$%

&

'

�����* �"�7**88��� ��*$���� ��#�* *��%

&

3�!�*�6G���#�* *��/

'

����� * �"�7**88��,�"!7��!�),$%

&

'

44�������*���*�F,)�*���,��F� * 9*���)�#����,

,)�*���,��88,)�*���,��$%

Page 283: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

*(+���'��'�"�@J ; -

�(&��66�#&0$�L��(��#�66�+�*$�66�#�������$,#�66�$+,�-

8

�&0$�L��(�HHY�&0$�L��(�25

�(&��66�#&0$�L��(��#�66�+�*$�66�#����)��$,P#�66�$+,�-

8

L(�,��&0$�L��(�HH0�'25

���&*��'�7"�*(+���'��'-

�(&��66�#&0$�L��(��#�66��+,�L�,&���*0�('$$�(

�����66�#�0��,�#�66�*(+���'��'�66�$+,�-

8

L(�,� �&0$�L��(�HH,��0��'���&�25

�(&��66�#&0$�L��(��#�66��+,�L�,&���*0�('$$�(

�����66�#����()�9��,$�#�66�9��,$�66�#��+,�����F$$+�0��,�#

�����66����&*��'�66�#��(�)��������'$��#�66�$+,�-

8

DD������,$)�+$�3*�+�9$�3�*$*F$��)&+���(+�

*�+�9$�HH*�+�9$�25

*(+���'��'�"�A@ ; -

F(+&�������"�A@ ; -

�(&��66�#�+�9$��#�66�+�*$�66�#�������$,#�66�$+,�-

8

*�+�9$�HHY*�+�9$�25

�(&��66�#�+�9$��#�66�+�*$�66�#����)��$,P#�66�$+,�-

8

L(�,�*�+�9$�HH0�'25

���&*��'�7"�*(+���'��'-

�(&��66�#�+�9$��#�66��+,�L�,&���*0�('$$�(

�����66�#�0��,�#�66�*(+���'��'�66�$+,�-

8

L(�,�*�+�9$�HH,��0��'���&�25

�(&��66�#�+�9$��#�66��+,�L�,&���*0�('$$�(

�����66�#����()�9��,$�#�66�9��,$�66�#��+,�����F$$+�0��,�#

�����66����&*��'�66�#��(�)��������'$��#�66�$+,�-

8

Page 284: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�������������� ��������� ������������������������#����� !������������������

������������������ �������������� ���������* �1#��B

44�������* �1#��

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*� A* �"�7**12A

���� !��$%

&

,)�*���,���,@/

!�!3*����� @/

* �"�7**���D*��G�N,@/

�!7S !�!3*�,S��"7$*�%/

*��G�N @/

�!7S !�!3*�,S��"7$*�%/

'

����� �!7S !�!3*�,S��"7$* �"�7**� D9!,*%

&

!�!3*��D �/

,)�*���,���D,�/

���$$ ��G��7�! �#S#!,�+ !�!3*��D-$9!,*%%�PG�.%

9!,*5-�!7$%/

*",*

���$$,��G��7�! �#S#!,�+,)�*���,���D-$9!,*%%�PG�.%

#�)��++�AK��F���!7�,���E��3�,)�*���,��,A�++�*��"/

*",*

#�)��++�A=�E��0��* �"�7**��7�*A�++�*��"/

'

)�� !��#��!7S !�!3*�,S��"7����������������������������������� �����,���� �

* �"�7**-� ��� ��������� ��� �������� �!7S !�!3*�,S��"7#� �� ���� �"����� ��

�����������AA�������������������� ����9!,*��L�����= �#��������������������

�!�����������������B

���$$,��G��7�! �#S#!,�+,)�*���,���D-$9!,*%%�PG�.%

��������������������� �����9!,*������������������������F���#������ �������

�������������� ���������������������,�����������#�,��������������K���������

�"�� ��#�����������������,��,)�*���,���-����!7S !�!3*�,S��"7#�������������!7

��������������������#������������������������������� ��� ���'����� �������� ��

�������B

���*���*0�* �"�7**��! *�%%�$

�)�*���,���,),!���,�2��*�

���*���*0�* �"�7**��! *���"��

�!�!3*���*�*���,�2��*�

K��F���!7�,���E��3�,)�*���,��,

Page 285: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�!�!3*��@..@��!���<@..

�!�!3*���*�*���,����*�P

�)�*���,���,),!���,����*�P

%������������ ��������������������������� �#��������������������� �������� �

������F����� ����7�*��$%� ������������������������ �#����F����������������

��������������F�������������������� �������������������������������%���� ��

�"�� ������7�*��$%����������������������������������* �1#���

44�������* �1#��

(��#")�*�+��,��*! -

)!��3��! *,�!#*�,��/

(��#")�*�+�7�*����-

(��#")�*� A* �"�7**12A

���� !��$%

&

,)�*���,���,@/

!�!3*����� @/

* �"�7**���D*��G�N,@/

�!7S !�!3*�,S��"7$*�%/

*��G�N @/

�!7S !�!3*�,S��"7$*�%/

'

����� �!7S !�!3*�,S��"7$* �"�7**� D9!,*%

&

���$�7�*��$D9!,*%�GG��7�*��$ !�!3*�%%

9!,*5-�!7$%/

'

��� !������������������������� ������������!7S !�!3*�,S��"7����������

�" ������ �� ������� �� ��� ����������������������� �� ��� ���� �� �����

�7�*��$%��������������������������������7�*S������ ���������������������������

��������������������7�*����#�������������������������������7�*S��������������

�������������������������

��� ��������� ������������� �7�*����� ��� �� ����������!�� ����������� �������!

������ �����������������������������GG� ����#�����������������������

��������������� ������������������������ ����������������������7�*��$%�

Page 286: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������

� (����������������������������������� �����!��!7+!��!7�7�*-1�+�������������!

���������� ����������������������#�#2!��������)9"*��� ���

������������������������������������������������������ ����������������

�"��������

� 4��������������������������� ��� ������������ !:� ���������������� ������� ���

��"�����������F��������!��� ���)���!��������F����#������������ !:

����\�������������������������������������������

Page 287: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�� .��� ������� /�#��&

���� ���������������:�4���" ���������� �5�

��:� �������! ������������������������������ ���

����!��������!! ������������������������������ ��.

�'����!� ���������������������������������������� �.(

Page 288: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

.���-�1������������/�#��&

��� �AA� �������� *����� ��� �� �� ��������� ���� �� ���� �� ���� ��� �AA

������#���������� �������������������AA�������������#���� �������#�����

��� ������� ���*���������� ����������������������,����-�%9����AA�4���

�����������8�������2����������G�������������� ��������������AA���������

;������������� �������������������������������������������� ���������

����������������������������������#�G�����#������������������ �������������*����

,����������������� ����2-� ���������������������������������������������

��������������������������� ��������������� ������D���������������

,��"*���������������������������������!�����#������������������������!��!��

�������D��������������������������� ���������������������� ����AA�*����

�������������������������� ��� ���������������#����� ���������������

��������������������������������������������������������� ���������

,��������-��������������������������������������� ��� �������������

���������������������������������������#�������������������������#��������������

������������������������������������

%������������������������ ����������������������������#�������������������

%�����G�������������������,�� � ��#������������!���-��%��� ���!�����������

����������������������������%������������� � ������������������&�����������

��������������������������������������� ������������%����,*��� �����#�������

���������������G����#������������ �������������������������������������������

������ ��� ������ ����������������� ���� �������������� �������� ����E

�������������� ������,������������������� ���������� �����������-�������

������������������� � ��������� ���������������� �,���������������������

�������� ������ ��� ���� �����-�� ����������#� ������������������

����������,����������������AA-������������������������������������ ��

������������������AA���������*������������������������������� �������C���'

������������������������������������������������ ��"�������

%������������������� ��������������AA��������#�����*����������� ��������

��������E���������������������������� ���������������������������� ���*�������

����B��������������������#�� �������������"����!�,0!30�!/$�35!0#�8������#

%������(�����#�����-�D������������������������D��"�������00� ��������������

����� ������������������"������������� �����������#�������#������

�����������������������������������������������*����#� ������������

������������������������������������ ��������������������������"�� ����

����������������� ��"�����������#� ��� ��������8���������������������

Page 289: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

������� ������� ��#��&

���� *����������������������������AA�*������ �����������*����� �����

����������������������B

◆ 4���� ��������� ���� ��������� ,��������#� ������#� ��������#� �������

�F����#��������#���� ���-

◆ �������� ��������� ���,����������������������������� ����/���������������

*����-

◆ ������

◆ �����������������

◆ 4������������

◆ 9��������������

◆ ."�� �����������

◆ �� ��"�������

��������#������ *��� �������������#�������#���������#���� ���#��������

�F������������������ ���.������#������������� ����� �������������� �� ���� �

����B������#�G�����#��� �������������������������#�����������������������

�����������������������������B���� �������� ����������� ���������� �E

����� ����������������� �����������������������%���������������!����

����������������������������������������B�����������������#������#�����

��������=���������������������������������������������������������������

��������������� ���������������������������������������������������

�����#�G����#���������#� ������

9�!� *����������������������*����������������������������������%��

����'�� ���� �������� ���� �� ������� ������� �������� ��� ����������������� ���

*������������������� ���3������������������������������������������������

������ ������� ���'�� �� ������� ����� ��� ����� ��� ������� ��� �/� ����� ��� ���

����������������������� �����"��������������������� *������������������������

���������

&�������������#�������������������#�����������������������������,���#

������ ����#�3*�"��*-#���'���� ������(��#")�*�������� �����������

����#���,��*! ���������������3*�"��*�� ������������������������ ��������������������

*�������������� *#�������������������������������������������������������

���%������#���������10B�/3����������AA������������E�����������������������

*������ ����������������������������������������������!��������� ��������#

�"�� ��������������� ���"������������������C�'�����������������C��'����� ���� ���#

�������,����312����!��������������#,����3�

6����������������������AA������������B

+!"3����2 - +9��,*�- +#� �"*:- +�*R)*- +*:#*�����-

+�,��*! - +�)�#����!"- +�� !���- +��,- +��,�0�-

+��,��*! - +�,��*! - +��*�!���- +"� ��,- +"�,�-

+"�#!"*- + !�- + * ��7- +�*0- +�) *��#-

Page 290: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

+�,��*! - +R)*)*- +,*�- +,,��*! - +,�!#E-

+,��*:#*��- +,��*! 9)�- +,����3- +�7�*����- +)��"��7-

+�!"!��!7- +�*#���-

�����������������������������B

+#!,,*��- +##�7�*- +#*����- +#�"�!�- +#�,�XLX-

+#"� ��,- +#"�#!"*- +# !�2- +#,*�\ �- +#,�3�!"-

+#,��!�3- +#,���*�- +#,����- +#,��"�9- +#,����3-

+#�� *- +#0#2!�- +#0#�7�*-

�'������������������������������� ��������#����������������������� �����������

D� ��������������D���������"�� ������������������������� �������������!

�����D���������������������������������������D������,��*! �����,����3#�����

�,��*! #��� !�������������������������������� �����������������

)� ������ ������#� �� �������� � �� ���� ������� "����!� ,8������-E� ,�

����������������������-��9�1�8��������� ����,0!�/!/35332#�6������J�������#

7������!6�������1-�����������:�-�������������;����,0!$105!31/�!2-�

Page 291: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

�./����������

����������� �� �����*����� �������� ������� ��� ����!���������������

�����������������������������B���G������������������������������������!

������G��������������������������������#� ���������������������������

���������� ���!G����� ��� �� ��� �"�� ����%���������� ��������� ��� ����

����������������������� �������������������������� ������������������ ������

������ ����������#��������������������������: ���!������ ����

����������������������G�������������B����������,������������!���������-E

������0���,�����!������G����#��������������G����-E��������������,�����!������#����

������������������������������-��%�������������������������������C����'#

����������C���'���������������������%������������������D�����������������"��

����������"��C���'��6����#��������������������������������������������B������

������������������������������#�����������C�������'�������������������������

%�����#����������#��������������������������������� �������%������������������

������������������������������������������������������������� �����#����

���������������������������������� �������� ����������������������

������������������������������������B��������������������%���� �������

���������������������E������� ������������������ #�������������������������

�������� ������������������������I������������������������ ���������������

���������E��������������������������������������������������� �������� ������

�������� ������� ������������������������� ����������������� B�������:

���������:������ �������� ���������������

��� � *� ���� ������ ����� � ������ ��G������ ��������#� ����� ������� ��

����������������� ���������� ����������������!��������������������

���������������#�����0��������������������!�0�����

���� *��� ����������������������������������� �������%�������� ������#���#

���� �����#����� �������������������������������������� ��������

��� �������� S�� ��� ������ �� �������� ���� �� ������������������ D� ��������� ���

������ ��D����������������������"������������������������������������������

������� ������������������������������'���������C�����������������'�����������

���������� ����������������������������������� ������������������������ ��

������������������������������������������������������ *�������������������

4������ ��������

������������������������� ��������������������������������������������

������� ������(������������������ �����������������������������������#

����������������� ����"�� ��� �������������� �������� �������������

������������������#�����������������������������"����� �������'��������������

�� ���������� ���#���������������������������C��� '���������������� *

����������#�����������������������" ��������������������

Page 292: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

6��'�����������������������*#���#������������� �����*#����1#��B

(��#")�*�+��,��*! -

(��#")�*�+�*#���-

),��3��! *,�!#*�,��/

���� !��$%

&

�*#���+���-��*#����/

����$�����G./��+@./��66%

�*#����1�),2S9!#E$�%/

����$)�,�3�*���G./��+�*#����1,�V*$%/�66�%

#�)��++��*#����T�U�++�*��"/

'

��������� �������������������),2S9!#E��� �����*#���� ��� ����� �� C ���'� ���

�������������������,���-������������ ����������������������,�V*����������

�������� ������������������������������������������#���� �������������������

9�����������������������+�*#���-���������(��#")�*��� ������ �������� ����������B

.

@

<

;

L

H

X

K

I

M

L������������ ���������������������B

����$)�,�3�*���G./��+�*#����1,�V*$%/�66�%

��� �������������#������'������� ���������� ���� "�,����������#���� �������������

�����������%� ������ � ���� ��� �� ���� ���� ��������� ��������� �� �"������ ����

� ��#��������������'����������������������� �����*#���@1#��B

4D

�D F�*#���@1#��F8��*#����0��2�,� �"*���*�!����!����*�*�,*���*�!���

�D4

(��#")�*�+��,��*! -

(��#")�*�+�*#���-

),��3��! *,�!#*�,��/

���� !��$%

&

�*#���+���-��*#����/

Page 293: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

)(��2�+���" -��6@ -��775

L$���+�;0&��IF��M2�5-

)(��2&+��9+$,��" -��6L$���+�;��O$25-�77�5

�(&��66�L$���+���!�66�3�3-

�(&��66�$+,�-

DD�F�����&�$�()���$���(���(L$����L$��(�

L$��(�6�+�?HH��$���(��F$9-

L$��(�6�+�?HH��$���(��$+,-

L$��(�6�+�?HH��$���(��0(�-

)(��20(�"F$9"L$���+�;F$9�+25/�$+,"L$���+�;$+,25-�0(�P"$+,-�770(�5

�(&��66�.0(��66�3�3-

�(&��66�$+,�-

DD�F�����&�$�()��$L$��$���$���(���(L$����L$��(�

L$��(�6�+�?HH�$L$��$I��$���(�� �F$9-

L$��(�6�+�?HH�$L$��$I��$���(�� �$+,-

L$��(�6�+�?HH�$L$��$I��$���(�� �0(�-

)(�� 2�0(�"�F$9"L$���+�;�F$9�+25/� �$+,"L$���+�;�$+,25-� �0(�P"�$+,-�77�0(�5

�(&��66�.�0(��66�3�3-

�(&��66�$+,�-

8

��������������������������������������������������������#�F$9#�$+,�����0(�B

L$��(�6�+�?HH��$���(�� F$9-

L$��(�6�+�?HH��$���(�� $+,-

L$��(�6�+�?HH��$���(�� 0(�-

����������������������������#���������������������������������������������

������ �� ���� L$��(�� ���������F$9�+� ���� $+,�� ���� ��� �� ��� ������ ��#����

��������������������������������������,����-������������ ������ �����

�� ��������� �����������B

�@�A�<�B���=�J�Q�C

�@�A�<�B���=�J�Q�C

C�Q�J�=���B�<�A�@�

%�������� ������� ��� �������������������E� ���� ����L$��(0@;�00

����������������������B

D.

�. 3L$��(0@;�003H�+(+:*(,�)'�+9��+,����$���(0$����(+�

�.D

>�+��&,$�6�(���$�*?

>�+��&,$�6L$��(�?

&��+9�+�*$�0��$���,-

�+��*��+25

L$��(�6�+�?�L$���+�-

Page 294: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

)(��2�+���" -��6@ -��775

L$���+�;0&��IF��M2�5-

)(��2&+��9+$,��" -��6L$���+�;��O$25-�77�5

�(&��66�L$���+���!�66�3�3-

�(&��66�$+,�-

�(&��66�#P$��(��*�G���O$����#�66�L$���+�;*�GI��O$25�66�$+,�-

�(&��66�#P$��(����0����'����#�66�L$���+�;��0����'25�66�$+,�-

L$���+�;�$�$�L$2�@A5-

�(&��66�#P$��(����0����'����#�66�L$���+�;��0����'25�66�$+,�-

�(&��66�#��$*$+�����0(���H�#�66�L$���+�;��2�5�66�$+,�-

�(&��66�#��$*$+�����0(��JH�#�66�L$���+��J!�66�$+,�-

�(&��66�#������$�$*$+�H�#�66�L$���+�;)�(+�25�66�$+,�-

�(&��66�#�����$�$*$+�H�#�66�L$���+�;F��M25�66�$+,�-

�)�2L$���+�;��O$25�""� �RR�L$���+�;$*0�'255

�(&��66�#P$��(�����$*0�'#�66�$+,�-

8

+���������������������������!�" �������� ������������$�$�L$����������,��

���������-�1�3������������������������#�����������������������0����'������

����#��������������������������0����'��6��'�������� ��B

�@�A�<�B���=�J�Q�C

P$��(��*�G���O$����@ J<JB@QA<

P$��(����0����'����A�=

P$��(����0����'�����@A

��$*$+�����0(���H��

��$*$+�����0(��JH�J

������$�$*$+�H�

�����$�$*$+�H�C

�������������� �����"�� ���#�L$�����@;�00#�����������������������������

�����������������������������������������B

D.

�. 3L$�����@;�003H�L$��(���(+���&��(���N�,$���&��(�

�.D

>�+��&,$�6�(���$�*?

>�+��&,$�6L$��(�?

&��+9�+�*$�0��$���,-

�+��*��+25

L$��(�6�+�?�L@-

)(��2�+���" -��6@ -��775

L@;0&��IF��M2�5-

L$��(�6�+�?HH��$���(�� F$9"L@;F$9�+25-

L$��(�6�+�?HH��$���(�� $+,"L@;$+,25-

L$��(�6�+�?HH�(+��I��$���(�� 0(�"F$9-

Page 295: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

1���$20(�P"$+,5

�(&��66�.0(�77�66�3�3-

�(&��66�$+,�-

L$��(�6�+�?�LA2L@5-

)(��20(�"F$9"LA;F$9�+25/�$+,"LA;$+,25-�0(�P"$+,-�0(�775

�(&��66�.0(��66�3�3-

�(&��66�$+,�-

F$9"L@;F$9�+25-

$+,"L@;$+,25-

L$��(�6�+�?�L<2F$9/$+,5-

)(��20(�"F$9"L<;F$9�+25/�$+,"L<;$+,25-�0(�P"$+,-�0(�775

�(&��66�.0(��66�3�3-

�(&��66�$+,�-

L$��(�6�+�?�LB2@ /J5-

LB;0&��IF��M2@@5-

)(��20(�"F$9"LB;F$9�+25/�$+,"LB;$+,25-�0(�P"$+,-�0(�775

�(&��66�.0(��66�3�3-

�(&��66�$+,�-

8

)�����������������#������������������������B

L$��(�6�+�?�L@-

L$��(�6�+�?� LA2L@5-

L$��(�6�+�?� L<2F$9/$+,5-

L$��(�6�+�?� LB2@ /J5-

��������������������������#�L@#�������������+���� ��������������������E������������

0&��IF��M����������������� ����������� �����������������������������������

���������������������������������������LA#�����������������������������L@�� ��

���������L<��������������������������������������������F$9�����$+,#�����������������

)������#����������LB��������������������������������������J�� �������������� �����

�� ��B

�@�A�<�B���=�J�Q�C

�@�A�<�B���=�J�Q�C

�@�A�<�B���=�J�Q�C

J�J�J�J�J�J�J�J�J�J�@@

/���� ��������

������������ �������������� *������� ��������������������������

�� ������������������������������������������ ���������������������������

��������������������������� ������������������������ ��������������������

������������������������������������������)��"�� ��#�������������,���!

�-#�������������������������������$��������������� �B������� ��������� ���

Page 296: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��������������������������������������������������������������������'����������S�

������������������ ������������D���������� ��������������������������� ����

�������������D�����������������������������������������������G������4����

������� ������ �������������� ������� ��������� ���������#���� �������#� ���� ��������

���������������� *����������������������������������������������

�������� ��������������������������������������� �������������� ����B

"�,����1#��8

(��#")�*�+��,��*! -

(��#")�*�+"�,�-

),��3��! *,�!#*�,��/

���� !��$%

&

"�,�+���-�"�,����/

����$�����G./��+@./��66%

"�,����1�),2S9!#E$�%/

����$)�,�3�*���G./��+"�,����1,�V*$%/�66�%

#�)��++�"�,����T�U�++�*��"/

'

����������������������� ��������B���'����������������������� ���������

�� ����������"�,�������� ��������������������������������������� �����

��� ���� ����������������� ��� ���� "�,���@1#��� ��� �������� �� �*#���@1#��

����B

4D

�D F"�,���@1#��F8�"�,��0��2�,� �"*���*�!����!����*�*�,*���*�!���

�D4

(��#")�*�+��,��*! -

(��#")�*�+"�,�-

),��3��! *,�!#*�,��/

���� !��$%

&

"�,�+���-�"�,����/

����$�����G./��+@./��66%

"�,����1�),2S9!#E$�%/

44 ����!��� �!##*,,����"�,�?���*�"�!�*��6�����,)�����*�

44 ����$)�,�3�*���G./��+"�,����1,�V*$%/�66�%

44 #�)��++�"�,����T�U�++�F�F/

44 #�)��++�*��"/

44�9!,�#�),*������*�!���,���*��!�"�,�

"�,�+���-88��*�!����9*3/

"�,�+���-88��*�!����*��/

"�,�+���-88��*�!������,/

Page 297: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

)(��20(�"F$9"�����+�;F$9�+25/�$+,"�����+�;$+,25-�0(�P"$+,-�770(�5

�(&��66�.0(��66�3�3-

�(&��66�$+,�-

DD�F�����&�$�()��$L$��$���$���(���(L$��������

����6�+�?HH�$L$��$I��$���(�� �F$9-

����6�+�?HH�$L$��$I��$���(�� �$+,-

����6�+�?HH�$L$��$I��$���(�� �0(�-

)(�� 2�0(�"�F$9"�����+�;�F$9�+25/� �$+,"�����+�;�$+,25- �0(�P"�$+,-�77�0(�5

�(&��66�.�0(��66�3�3-

�(&��66�$+,�-

8

��������!�������� ���������������#��������������������������������������

���������� �����"������ ��������������������������� ������ �������� �����B

�@�A�<�B���=�J�Q�C

C�Q�J�=���B�<�A�@�

����������������������������������������������������������������#�������

�G��������� ������L$��(0@;�00#� ����(0@;�00#�����B

D.

�. 3����(0@;�003H�+(+:*(,�)'�+9��+,����$���(0$����(+�

�.D

>�+��&,$�6�(���$�*?

>�+��&,$�6����?

&��+9�+�*$�0��$���,-

�+��*��+25

����6�+�?� �����+�-

)(��2�+���" -��6@ -��775

�����+�;0&��IF��M2�5-

DD )(��2&+��9+$,��" -��6�����+�;��O$25-�77�5

DD �(&��66������+���!�66�3�3-

DD �(&��66�$+,�-

�(&��66�#�����*�G���O$����#�66������+�;*�GI��O$25�66�$+,�-

DD �(&��66�#�������0����'����#�66������+�;��0����'25�66�$+,�-

DD �����+�;�$�$�L$2�@A5-

DD �(&��66�#�������0����'����#�66������+�;��0����'25�66�$+,�-

DD �(&��66�#��$*$+�����0(���H�#�66������+�;��2�5�66�$+,�-

DD �(&��66�#��$*$+�����0(��JH�#�66������+��J!�66�$+,�-

�(&��66�#������$�$*$+�H�#�66������+�;)�(+�25�66�$+,�-

�(&��66�#�����$�$*$+�H�#�66������+�;F��M25�66�$+,�-

�)�2�����+�;��O$25�""� �RR������+�;$*0�'255

�(&��66�#��������$*0�'#�66�$+,�-

8

Page 298: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�������������������������������� �����������"�,�����������*�����#�������

����������� ����"�,�#,�@1#�����������������������������������������"�,�

����������������������������*#��������� ���B

4D

�D F"�,�#,�@1#��F8�"�,��#��,��)#���,�N��*,��)#���

�D4

(��#")�*�+��,��*! -

(��#")�*�+"�,�-

),��3��! *,�!#*�,��/

���� !��$%

&

"�,�+���-�"�,�@/

����$�����G./��+@./��66%

"�,�@1�),2S9!#E$�%/

"�,�+���-88��*�!���� 9*3G"�,�@19*3��$%/

"�,�+���-88��*�!���� *��G"�,�@1*��$%/

"�,�+���-88#��,�S��*�!���� ��,G9*3/

02�"*$��,PG*��%

#�)��++�D��,66�++�F�F/

#�)��++�*��"/

"�,�+���-� "�,�<$"�,�@%/

����$��,G9*3G"�,�<19*3��$%?�*��G"�,�<1*��$%/���,PG*��/���,66%

#�)��++�D��,�++�F�F/

#�)��++�*��"/

9*3G"�,�@19*3��$%/

*��G"�,�@1*��$%/

"�,�+���-� "�,�;$9*3?*��%/

����$��,G9*3G"�,�;19*3��$%?�*��G"�,�;1*��$%/���,PG*��/���,66%

#�)��++�D��,�++�F�F/

#�)��++�*��"/

"�,�+���-� "�,�L$@.?K%/

"�,�L1�),2S9!#E$@@%/

����$��,G9*3G"�,�L19*3��$%?�*��G"�,�L1*��$%/���,PG*��/���,66%

#�)��++�D��,�++�F�F/

#�)��++�*��"/

'

��� ������������������������� ���B

.�@�<�;�L�H�X�K�I�M

.�@�<�;�L�H�X�K�I�M

.�@�<�;�L�H�X�K�I�M

K�K�K�K�K�K�K�K�K�K�@@

Page 299: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

.��������������

������������

��� ���3� ��������������������� �����AA���������*�����,����3� ������� ���

���������������������������,����3��������������������������������������

�������������,����3���������������������������������������������,����3������

���������

� ����#� ���'�� �� ���#� #��,��,1#��#� ����� ����� ��� �"�� ��� ���� ���� ,����3

����������"�� �������������������� *�������B

4D

�D #��,��,1#��8�*:*�#�,*�!""�F,����3F�#"!,,�#��,��)#���

�D ��*�"�!���3,�*:#*����2*���*��!E��3���*�!����!�3) *��,

�D4

(��#")�*�+��,��*! -

(��#")�*�+,����3-

),��3��! *,�!#*�,��/

���� !��$%

&

,����3�,@/ 44��*�!)"��#��,��)#���

,@�G�A,#2!�*���*)�*A/

#�)��++�A�����3�@8�A�++�,@�++�*��"/

,����3�,<$,@%/ 44�#��7�#��,��)#���

#�)��++�A�����3�<8�A�++�,<�++�*��"/

,����3�,;$,@?�K%/ 44�#��,��)#����� ���,�K

#�)��++�A�����3�;8�A�++�,;�++�*��"/

44�#��,��)#����� ���,�<��2��)32�L

,����3�,L$,@?<?;%/

#�)��++�A�����3�L8�A�++�,L�++�*��"/

44��*���*���,����3�N�#2!�!#�*��!��!7

#2!���)""�*� ,��T;.U�G�A�)""5�*� ��!�*��,����3A/

#2!��#2!�!��!7T;.U�G�&F#F?F2F?F!F?F�F?F!F?F�F?F�F?F!F?F7F'/

44�#��,��)#����� ���,����3

,����3�,H$�)""�*� ,��%/

#�)��++�A�����3�H8�A�++�,H�++�*��"/

44�#��,��)#����� �!��) 9*�����#2!�!#�*�,�����2*�!��!7

,����3�,X$#2!�!��!7?K%/

#�)��++�A�����3�X8�A�++�,X�++�*��"/

44�#��,��)#��0��2�@.�#���*,����FRF

,����3�,K$@.?�FRF%/

#�)��++�A�����3�K8�A�++�,K�++�*��"/

Page 300: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

DD������,$���&��(��)(����������+9��+���+�$�

�@;Y����+925-

�A;Y����+925-

�<;Y����+925-

�B;Y����+925-

��;Y����+925-

�=;Y����+925-

�J;Y����+925-

8

������������@� ��� ��������� ����;�������� �� ���������� D� ��������� ��� ���

����"�#���������D������������������������������ ����������+9;� ����������

�A�����������������������������+9�� ���������E�������������������������������

������������������������������������������+9����������� ��� �����������

�" ���������������� ��#������������������������������������������+9����������

�@����JB

���+9�@H�����,$+)�$&,$

���+9�AH�����,$+)�$&,$

���+9�<H�)�$&,$

���+9�BH���,

���+9��H��&��:�$�*�+��$,�����+9

���+9�=H��������

���+9�JH�%%%%%%%%%%

���'����������������������������������������+9#������� *��������� ������

�����G��������" ��������������������������� ��������� ��������������

�������������������������)���#���$���(�;�00B

>�+��&,$�6�(���$�*?

>�+��&,$�6����+9?

>�+��&,$�6L$��(�?

&��+9�+�*$�0��$���,-

�+��*��+25

L$��(�6����?����@-

���@;0&��IF��M23+35-

���@;0&��IF��M23(35-

���@;0&��IF��M23035-

���@;0&��IF��M23%35-

���@;0&��IF��M23�35-

���@;0&��IF��M23�35-

���@;0&��IF��M23&35-

���@;0&��IF��M23L35-

���@;0&��IF��M23135-

Page 301: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���@;0&��IF��M23G35-

L$��(�6����?HH��$���(��F$9-

L$��(�6����?HH��$���(��$+,-

F$9�"����@;F$9�+25-

$+,�"����@;$+,25-

����+9��@2F$9/$+,5-

�(&��66��@�66�$+,�-

8

�����������������������������������#��@#���������������������������������������

�� ������������D��������������F$9�����$+,�D��������������(������������������

����������� ��������������������������������������������������� ���������

��0&��IF��M�� �����������������������������������������������������������

������ ��� ��������� �@� �� ������ ��� ������������������� ������ ������� ���� ���

�����������@��������������������������@�

9�#����������"���#�������������� ������$����A;�00B

>�+��&,$�6�(���$�*?

>�+��&,$�6����+9?

>�+��&,$�6L$��(�?

&��+9�+�*$�0��$���,-

�+��*��+25

L$��(�6����?����@- DD�L$��(��()��'0$�3����3

���@;0&��IF��M23+35- DD��,,�$�$*$+����(�$+,�()�L$��(�

���@;0&��IF��M23(35-

���@;0&��IF��M23035-

���@;0&��IF��M23%35-

���@;0&��IF��M23�35-

���@;0&��IF��M23�35-

���@;0&��IF��M23&35-

���@;0&��IF��M23L35-

���@;0&��IF��M23135-

���@;0&��IF��M23G35-

L$��(�6����?HH��$���(��F$9- DD�,$)�+$����$$���$���(��

L$��(�6����?HH��$���(�� �*0- DD���M$�9$+$�����$,�0(�+�$��

L$��(�6����?HH��$���(��$+,-

F$9�"����@;F$9�+25-

$+,�"����@;$+,25-

����+9��@2F$9/$+,5- DD�*�M$��+���+�$��@�()�3����+93�1���

DD���$���(��(L$��(�,�+9�()��(+���&��(�

�(&��66�#����+9�@H�#�66��@�66�$+,�-

Page 302: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

DD��$��L$��(��0(����(+����):1�'/��+�$���F$)(�$�3�3

)(�2�*0"F$9-��*0P"$+,�NN�.�*0P"3�3-��*0775

-

�)2�*0P"$+,5

���@;�+�$��2�*0/</3'35-

DD�3L3/�313/�3G3�)����())���$���9���$+,

����+9��A2F$9/$+,5-

�(&��66�#����+9�AH�#�66��A�66�$+,�-

DD�+(1��$:��M$�F$9�+��+,�$+,/�3L3/�313��+,�3G3��$�00$��

F$9�"����@;F$9�+25-

$+,�"����@;$+,25-

����+9��<2F$9/$+,5-

�(&��66�#����+9�<H�#�66��<�66�$+,�-

8

���������������$���(�;�00�� ����������#�F$9#��*0�����$+,#��������������������

��������C''������������������������������������������@�� ������������������

������ ���� ����������� ���� ����+9� ��������� �A�� ���� ��������� C�������� ���� ���'E

������� ������������������������������" ���������������������������������

����������+9�����������<��6��'�������� ��B

����+9�@H�+(0%��&L1G

����+9�AH�+(0%'''��&

����+9�<H�+(0%'''��&L1G

�#��� )��������

)������������������������������������������������������������AA�����+9������#

��������������������� �������������������B

A$�" &$ B�&"&"��� +%���

�$+9��/���O$ ��O$I�'0$� �$+9��25��(+�� ����+9�����"�#�F�,$)#-

2��O$I�'0$�����+�&+��9+$,��+�$9$�5 ���;�$+9��25�DD�""�=

���;��O$25�����DD�""�=

�+�$�� ����+9N� �+�$�� ����+9����@�"�#�F�,$)#-

2��O$I�'0$�0(�/��(+�������+9N����5- ����+9����A�"�#GGG#-

���@;�����2B/����A5-

DD����@����#�F�,GGG$)#

Page 303: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

$���$ ����+9N�$���$ ::�4����������������#

2��O$I�'0$�0(�" /���O$I�'0$��$+5- ::�������������� �����

DD�0(����������������$+

���@;$���$2B/<5-

DD����@����#�F�,$)#

)�+,/��)�+, ��O$I�'0$�)�+, ::�����������������

2�(+�������+9N����/���O$I�'0$�0(�" 5��(+��- ::��������������

��O$I�'0$�)�+, ::��������������,

2�������/���O$I�'0$�0(�" 5��(+��- ::�����������-�������

��O$I�'0$��)�+, ::������������#�����������

2�(+�������+9N����/���O$I�'0$�0(�5��(+��- ::�0(�;��)�+,�����������

��O$I�'0$��)�+, ::��������

2�������/���O$I�'0$�0(�5��(+��- ���@;)�+,2#�,$#/� 5-

::�������3

��$0���$ ����+9N��$0���$ ::�4�������������������

2��O$I�'0$�0(�/���O$I�'0$�+/��(+�� ::��������������������

����+9�N�5- ::�� ���������������

����+9����@�"�#�F�,$)#-

����+9����A�"�#GGG#-

���@;�$0���$2</A/����A5-

DD����@����#�F�GGG)#

�&F��� ����+9��&F��� ::�=���������������������

2��O$I�'0$�0(�/���O$I�'0$�+5��(+��- ::������������#�����������

DD�0(�����������+

���A�"����@;�&F���2</<5-

DD����A����#GGG#

)�+,I)����I() ��O$I�'0$� )�+,I)����I() ::�����������������:����

)�+,I����I() 2�(+�������+9N����/���O$I�'0$�0(�" 5��(+��- ::������������

)�+,I)����I+(�I() ��O$I�'0$� )�+,I����I() ::�����������������:���

)�+,I����I+(�I() 2�(+�������+9N����/���O$I�'0$�0(�5��(+��- ::����� ��������

��O$I�'0$� )�+,I)����I+(�I() ����+9����@�"�#�F�,$)#-

2�(+�������+9N����/���O$I�'0$�0(�" 5��(+��- ����+9����A�"�#GGFFOO#

��O$I�'0$� )�+,I����I+(�I() ���@;)�+,I)����I()2���A/ 5-

2�(+�������+9N����/���O$I�'0$�0(�5��(+��- ::�������A

�I��� �(+�������.��I���25��(+��- ::��������������������

::������������:����+9

����+9����@�"�#�F�,$)#

�����������'�A !-

�(+�������.������"�������'-

�����"����@;�I���25-

DD���������#�F�,$)#

Page 304: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

��������

� (������ ������������� ��������������"����������� ���������������� �����

������ ������������#�,@�����,<�� ��� ��������������������������������"���

,@����#��������#�� ����������,<�� ��� ����������� �������������������

,@������,<�

Page 305: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

�!���������-01

�������� ���������������������������������� �.(

���� �������� ��4���"����!!�! ���������� �..

2��������� � ������������������������������ %&�

��������������� ��� ���������������� %&5

;��������! �������������������������������� %��

2���� � ���������������������������������������� %��

�'����!�! �������������������������������������� %��

Page 306: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

-�����������

.��� -1����� ��#��&

��� ����3�����������������������AA�*����#�����������!�" �����������

����������� ����� �������������� ������������������ ��� �����#����������������#

����!����������������#������!��������������������������

������� ���������������������������:��,�� ��:�� ��#�������������������

�����-����������������������*����#������������ �������������������������������

������� ������� ����������:�������������������������������)����������!�

���������������������������������:��� �����������������������������#�������

����" �������������� � ����������������������� ������6��'������ �����B

������������������������������������������� ��������������������#������

������������ ����������!�������#�+-#���� ��� ������� ����������������

�����!��������������������(���#�������������"#����������������������� ������������

��������������������������#���������������������������������������� ����������

�����,#2!�-����������,0#2!�-����������� ����� ���������

���������������������������� ������������������AA�*�����,�����������

������������������:��*����-�����������������������������������������������!

����� �����F� ������� ��� ���� ����������� �� ����������� �� �������������

��,S9!,*9!,�#S,��*! 9)�+-

,��*! 9)�40,��*! 9)�

9!,�#S��"*9)�+-

��"*9)�40��"*9)�

9!,�#S�,��*! +-

�,��*! 40�,��*!

9!,�#S��,+-

��,40��,

9!,�#S�,��*! +-

�,��*! 40�,��*!

9!,�#S��,��*! +-

��,��*! 40��,��*!

9!,�#S��,��*! +-

��,��*! 40��,��*!

9!,�#S��,��*! +-

��,��*! 40��,��*!

9!,�#S�,��*! +-

�,��*! 40�,��*!

Page 307: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

���������,��������������-����������������C����'���!������������������

��� ����.������!� ������������ ��� �������������������������� ��� ����B

�������� ������ �� C����'�������������� ������� ������� ����� ������ ������

��������E� � �����AA� ��� ������ ��� ���������� ��������#� ������������ ���

���������� ��������������������������������������������������������������

������������������������ ������ ����

����������������,S9!,*����F�����������#��������� ����������������� �������������

����������������������������:����������������D����������� ��#����������� ��#

���������������� �����,�����0��,��������������������������������������� ����

9!,�#S��,+-�������� ��������������������������������� ��������������������

��������C����'��������������������%�������� ����������� ���������������

������������!������ ������������������������� �����9!,�#S,��*! 9)�+-����

������������� ��� ������ �� ���� �������� ,��*! 9)�� �0,��*! 9)��� ��� ��� �����

9!,�#S�,��*! +-�����9!,�#S�,��*! +-�������������������������,��*! #��,��*! #

0�,��*! �����0�,��*! ���� �������������������������AA� �������

��������� ����������������������"���� ������������������� ������������

������� ��"�� �� ��� ��� �������� �� ���� ���� ���������� ���� ��!������ �������

���������������������������� ������������������������������� ����������

��,��*! #���,��*! ������,��*! ������ ������������� ��#��� ��������� ��!�� ��

��������������������

��������������#���'�������������������������,��*! ������,��*! ���������

%��������� ���������!�������� ����� ���#� ������ ������ ����� �������� ��

�����������������������B

���� *�?� B��&%�

�,��*! #�� ��!��!������)�

�,��*! #�)� ��!��!����)��)�

�,��*! #*�� ��!��!���*����

�,��*! #"�3 �)��*�*��#*�������"�3��)��)�

0�,��*! 0#�� ��!��!������)������0��*�#2!�!#�*�,

0�,��*! 0#�)� ��!��!����)��)������0��*�#2!�!#�*�,

0�,��*! 0#*�� ��!��!���*���������0��*�#2!�!#�*�,

0�,��*! 0#"�3 �)��*�*��#*�������0��*5#2!�!#�*��"�3,

���������������������������������������������������������������������,��*! #

�,��*! #� ��,��*! #� ,��*! 9)�#� �,��*! � ���� �� !����� ������� ������ �����#� �"�����

����������������������������������� ����������!�� ������B���������������

����������������������������������#����#�+�������AA�����&������AA#��������

���������������������������������������������� �����'������� ����

Page 308: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

��� �����++� ���� �������--� �� �� ��������������� ���++� ���

������������������ ������������������������� �������������(��������#

����������������������������������� ���������� ���--� �������������

�������� ������������������"������� ������"������(��������#�������������

�"�������������������� ���������

����"���������������� ���������������AA����!������ ������������

������������ ����������������� �������������� �������� �����������������

������������� ��������� ��������� ������F���������������������������� ��E

����#������#�������������� �!�������

� �!�������������������������������������������������������AA����������B

������������� �������������� �������������������������������� ����� ��

����������������F����<�������������� ���#2!�#����#��"�!��������)9"*#����������'�

���������������#�������������������B

#�)��++��/

������������������ ����++#���������������������� ��������������������

������������������#����������������B

������$AJ�A?��%/

�������������#�����������#����� ����)9"*�� ���'���������������������� ���������

�������������� ����������������������� ������������������������������

������������������� �!��������������������������������������AA��������!

���� ���!����������� ����������

Page 309: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

.���-1�������#��&�������

������ ������������� ������������������������#���������!����������������

���������������������������������������������� ��������������������� ��

���������������������������AA��������:������������������!�������������

C����'��������.������!� ������������ ��������������� ����������� ���������

�������������������������������������������������������������

�(�IF��$ ���$�*F&)

�(�)��$F&)

����$�* (���$�*

�(���$�*

�)���$�* ()���$�*

)���$�*

.������������������������������������ ������$�*F&)������������� �������������

�������E��������������������� ���������������������������(����������������!

�������� ��:�� ����� ��������������G���������$�*F&)��������������������

���������������������������F������L������#������'������������������������

����������������������������������$�*F&)����������������������������!�������:�

������������

��� �(�IF��$� ����������� ��������� ����� ���� ������ �� ���� ������� ���

������������������� ������#������������������������������%�������������

�����#�������������������������������������������(�IF��$������B

)��9� �$�) &+�$�) 1�,�� )��� 0�$����(+

��$ �,����$ $() )��� F�, 9((, ��$��

�����������������������������������������������������" ����������������"�

�������

Page 310: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�����,������#�������������,S9!,*#����������� ���������������������,��*! 9)��

)����,����������������� ����������,��*! ������� ����������,��*! ���������

�������������:��������������� ��������������������������AA� ������

&����,��*! ������,��*! ����(��#")�*����� ���������������������������,��*! �

����������������������(��#")�*�������������������,��*! ������,��*! #���������

�������� �� ���� ����� ����� ��� ��������� �,��*! � �������� �������� ����������

���������������������B

3*� �**E

�*!� �)�9!#E

3*�"��* ,**E3

3#�)�� �*""3

����������,��*! ����������������������������������B

�)� ,**E�

0���* �*""�

�,��*! �������������������������������������������"�����--#��������,��*!

������������������������������������++�

�����������,��*! ��������������,��*! ������,��*! �������������������������,��*!

������������ ���������:������������,��*! �������,��*! ������������������������

������,��*! ����,��*! ��������������������������� ��������� �����������������

�,��*! ������������������#��������������������������������� ������������

��,��*! ����������������������������������������������,��*! �

)������#��,��*! #����������������������������,��*! #�����������,��*! ������������

������������������������������������������� ���������� ��!�� �������

Page 311: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

5������� -01

%����������:������������������ ����������������B��������������� ������

�� �����������������������������������������������������"������� ������S�

���#�������������#�� �������������������" �������B

◆ ���,*��#�)�,*��������"!3,���������������������������������� ��������� ��

������ ��� ��,S9!,*� ������ ���������� ���� ������������ ���� ������������ ���

���������

◆ �����,S9!,*����������������������0���2#���*#�,����������""#��������������

������������� ��������� ��������

◆ L��������� �����#�� ���������������������������������������������G���

���������������

5���� )���

.�����AA� �� ��������� ����������������������� ���,��� ���� ��,S9!,*������-��

�������������������������������������� ����������� ��������� ��������

������������ ��������������� ������������������������������������������������B

44�,E���02��*�,�!#*�������)�

,E��0, G�.:...@?

44�"*��5!�\),���)��)�

"*�� G�.:...<?

44���32�5!�\),���)��)�

��32� G�.:...L?

�������F���������������� �������������������������������������������������AA

����������� ����"���� ����������������� ���� ����� ������ ��� �� ����������!

�� �������� ��������������������������������B

�*# 44��*#� !"�#���*�,���?� !,E���,S9!,*889!,*��*"�

�#� 44��#�!"�#���*�,���?� !,E���,S9!,*889!,*��*"�

2*: 44�2*:!�*#� !"�#���*�,���?� !,E� ��,S9!,*889!,*��*"�

"*�� 44� "*��5!�\),���)��)�?� !,E���,S9!,*88!�\),���*"�

��32� 44���32�5!�\),���)��)�?� !,E���,S9!,*88!�\),���*"�

���*��!" 44�"*��5!�\),��,�3�?���32�5!�\),���!")*

44� !,E� ��,S9!,*88!�\),���*"�

,#�*�����# 44�,#�*�����#����!����?� !,E���,S9!,*88�"�!���*"�

��:*� 44��*#� !"����!����?� !,E���,S9!,*88�"�!���*"�

,E��0, 44�,E���02��*�,�!#*�������)�

,2�09!,* 44�,2�0����*3*��9!,*�����)��)�

,2�0����� 44�,2�0��*#� !"������

)��*�#!,* 44�)��*�#!,*�2*:��)��)�

,2�0��, 44�*:�"�#���6�0��2���,����*����*3*�,

)���9)� 44��"),2��)��)��!��*��*!#2��)��)����*�!����

Page 312: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

S�������������������������������������������������������� ������������������

���� ������ �������� ������ �� ���� ,*��� �������#� ��� �� ������� ��,S9!,*

�������������������� ������ �������� ������� �� �������������������#� ���

���������������������������������������������������������������'���� �����

� �������������������� �������� ��,S9!,*889!,*��*"�� ��� �� ���� ������� � ����

�������������������*##��#������2*:��S����������������������������������������

�� �������������������

6��'������� ����"�� ��� ���#���� !�*V1#��#������������������������(�

������������������������������������������������������(����������������������������

�� ������������"�����������#�����������������,.�-����� �����B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

�����) 9*���G�LH/

44���,*��2*:!�*#� !"�!���,2�0��2*�9!,*

#�)�1,*��$��,S9!,*882*:?� ��,S9!,*889!,*��*"�%/

#�)�1,*��$��,S9!,*88,2�09!,*� O� ��,S9!,*88)��*�#!,*%/

#�)��++��) 9*��++�*��"/

'

����� ��������������������B

.�<K

&������������������������,*������������������������ ��������������,*�����

���� ������ ������� ��� ��������� �������� ��,S9!,*889!,*��*"�� ������ ���

�������#���������"��������� ������ ��������� ���������� ���� ���� ����� ����� ���

��"��������������� ���������,*������������������ ������#������-����)8�����!

������������,2�09!,*�����)��*�#!,*�������� ���������������������������,*���

����������������������������LH���� ��������"�����������������������,C�'-

�" �������������

���������������������������������������������G���������������������������������

�� ����������� �����������"��������#������������������������������������S�

������������������������������)�,*����������B

#�)�1)�,*��$��,S9!,*882*:� O� ��,S9!,*88,2�09!,*� O� ��,S9!,*88)��*�#!,*%/

%��������� �����#������� ��������������������������������������������,*��

D� ������������������LH��6������ ���� ��� ����� ����,*��#�)�,*������� �"!3,

��������B

��,S9!,*88� ��"!3,� ,*��$��,S9!,*88� ��"!3,%/

��,S9!,*88� ��"!3,� ,*��$��,S9!,*88� ��"!3,?� "��3%/

��,S9!,*88� ��"!3,� )�,*��$��,S9!,*88� ��"!3,%/

Page 313: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

��,S9!,*88� ��"!3,� �"!3,$%/

��,S9!,*88� ��"!3,� �"!3,$��,S9!,*88� ��"!3,%/

�����������,*������������������������������������ ����,S9!,*88� ��"!3,�,������

����"��3�������-������������������������ �������������������������,*��������

�������������������������������������������������,*����%�������������������

��,*����������������������%���������������������������������������� ����������

������������������,��������-���������������������������� ��������������������

���������������������������������������������������������������������

�����������)�,*���������������������� ������������������������������������

����������������������������������)�,*��������������

%�������������"!3,���������������������������������������������������������

������� ����"!3,������������������������"��3����������������������������������

�������� ��������������������������������������������������������������������

�����������������"!3,�� ����������������� �����������������������������������

����������������������������� �������������������������

���������� )���� )���

6��'�� ��� �"�� ��� ���#� ��� !�@1#��#� ����� �"������� ���� ����� ����!�������

���������������������������������������������

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

��,S9!,*88� ��"!3,� �"�S�"!3,/ 44��"���"!3��!")*,

��,S9!,*88� ��"!3,� � �S�"!3,/ 44��* ���!�7��"!3��!")*,

��,S9!,*88� ��"!3,� �*0S�"!3,/ 44��*0��"!3��!")*,

�����) 9*���G�LH/

44���,���*����3��!"���� !���"!3��!")*,

�"�S�"!3,�G�#�)�1�"!3,$%/

44���,2�0�6�,�3�������,����*

#�)�1,*��$��,S9!,*88,2�0��,%/

#�)��++��) 9*��++�*��"/

44���,*��)��*�#!,*�2*:!�*#� !"�!���,2�0���2*�9!,*

� �S�"!3,�G�#�)�1,*��$��,S9!,*882*:?� ��,S9!,*889!,*��*"�%/

44 ��""�0��3�;�,�!�* *��,�2!�*��2*�,! *�!33�*3!�*�*��*#��!,���*���),�,*��

44� �S�"!3,�G�#�)�1�"!3,$%/

44#�)�1)�,*��$��,S9!,*88�*#%/

44#�)�1,*��$��,S9!,*882*:%/

Page 314: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�(&�;�$�)2�(�IF��$HH��(1F��$� R� �(�IF��$HH&00$����$5-

�(&��66�+&*F$��66�$+,�-

DD���,��0��'��1��$��(���(1�������$�)����0$�����$+�

�(&��66�+&*F$��66�$+,�-

DD���&+�$����$�&00$����$�)��9

�(&�;&+�$�)2�(�HH&00$����$5-

�(&��66�+&*F$��66�$+,�-

DD����$L$����(���(10(��(+�'

�(&�;�$�)2�*0I)��9�5-

�(&��66�+&*F$��66�$+,�-

DD����$�&�+��(�(��9�+���)(�*���)��9�L��&$�

+$1I)��9��"��(&�;)��9�2(�,I)��9�5-

�(&��66�+&*F$��66�$+,�-

8

������������� ������������ ���������B

7B�

�A�

�A�

GA,

7B�

B�

���� ������������������������#��������������" ����������#���������������

���� �������������� �� ���� ����������� �� ���� ��������� ������ ���� ���������� ��

�������#��"�����������������B

�*0I)��9��"��(&�;�$�)2�(�IF��$HH�$G/� �(�IF��$HHF��$)�$�,5-

DD )(��(1�+9�<�����$*$+�����L$���$���*$��99�$9��$�$))$������0�$L�(&���$�)

DD�*0I)��9��"��(&�;)��9�25-

DD�(&�;&+�$�)2�(�IF��$HH,$�5-

DD�(&�;�$�)2�(�IF��$HH�$G5-

&���������������������������������������������������(�IF��$������#����������

����� �!������������������������B��(�IF��$HH�$G��������#��������$G�����

�������������#� �!�������#��AA�������#�������������������������������������

�(�#�����(�IF��$��+����������!���������AA���������������������������

���#����"�� ��#��(�HH�$G�

����������������������������������������������B

◆ ,$�������������������������������#������������ ��������������������

�������������� ���������������������������������E������������������������������

◆ �M�01�#��������,��������������������-#��������������� ������������ ������� ��

�����������"������� ����

Page 315: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

◆ "*���������32�������������!F����������������� ������������������������E��������

������������

◆ ���*��!"��������������������������������������������������������������������

��������������

◆ ,2�0����������������������� ����������������K���������� ������������!

����������#���������������������������

◆ ,#�*�����#���������������! ������� �����������������B

1������*:

����� �����������#��������������������� ����������������������������� ������

� �������� ��� ���� ������ ������� ������ ,���� ��*#�,���$%� ����-�� ��� �������

����������5�� �������������������������������*����,���������������,88��:*����

���-���������" ������ ��������B

;@L@1HM<XHL

��� �������������������������B

;1@L@HM;*.;

◆ ��:*����������������! ������������������� ��������������,��!����������-

�������

◆ )���9)�#������ ���#������� ������ ���������� ����� �������� ������������ ��

������

5�����������������������

S�������������� ��,S9!,*����������������������0���2#���*#�,����������""����

������������������� ������ ���������6��'������"�� ��� ���#���� !�<1#��#

�������"������������������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

��)9"*����G�;1@L@HM<XHL/

44�,*����:*�5�*#� !"���� !����3

#�)�1,*��$��,S9!,*88��:*�?� ��,S9!,*88�"�!���*"�%/

44����*�!)"����,�"!7��,�"*��5\),����*��0��2���*#�,����X

#�)��++����++�*��"/

44���,*����*#�,����L?���*"��0���2�@<�!�����""�#2!�!#�*��6

#�)�1��*#�,���$L%/

#�)�10���2$@<%/

#�)�1��""$F6F%/

#�)��++����++�*��"/

Page 316: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

DD���1�,����$���+9����+(��0$�����$+�

DD���)�����$���+9���

�(&�;1�,��2@A5-

�(&��66�0��66�$+,�-

DD���0�$����(+�1���(&����9&*$+��M$$0�

DD���0�$L�(&��L��&$

�(&��66�#�&��$+��0�$����(+H�#�66��(&�;0�$����(+25�66��$+,�-

�(&�;0�$����(+2Q5-

DD���1�,���,($��+(����&+���$

�(&�;1�,��2A5-

�(&�;)���23:35-

�(&��66�0��66�$+,�-

DD�1�$�$�0�$����(+�$G�$$,��,$��*���0���$�/�O$�(���00$+,$,

�(&�;0�$����(+2@A5-

�(&��66�0��66�$+,�-

8

�������������� ���������������� ���B

<;@B@�C<

777777<;@B@=

777777<;@B@=

�&��$+��0�$����(+H�B

<;@B@�CA=�

<;@B@�CA=�B

Page 317: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

��������������������

����� ������

�������:�� ������������������,�������� ��-� ����������������������

������ �� ����� �� ���� ����� �� ��� ��� ������ �� ��� �����!��� �������� �� ���

������������������������ �������������������������������� ���

��������#� �" ������� ��� ��� ��� ��� ���� ���� ���� ����������� ��� ���

�������� ��������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

���� !��$%

&

�"�!����G�<1K@I<I/

#�)��++��/

#�)�1��*�!���++$�%/

'

����������� ���������#�)������G���������������������������������������������

�����#� ����� ��#� ���� ���� ����������*�!���++� ����" ��������������� �� ���

�� ���������#�)�����*�!���++���������������������������,�����-��F���������

�� �������������������������#���������������,��*! �� ����������������������������

������B

#�)��++�A>!")*����*��,8�A�++���++�*��"/

6���������������!����������:����������� ��B

#2!��$,�3�*��!���)�,�3�*�%

,2����$,�3�*��!���)�,�3�*�%

����$,�3�*��!���)�,�3�*�%

"��3�$,�3�*��!���)�,�3�*�%

#��,��#2!��D�$,����3%

�"�!�

��)9"*

"��3���)9"*

�����D�$����������*�?�2*:�!���*,,%

S�� ���#� ��� ��'�� ���������������������#� ������� ������ �������� ���

�������������������� ����������������������������������������������!��

��������� )� �������� �� ���������� �������#� �� ���� ��� �� ���� ���� .����

3������#�������������������"������,/�����-�

5��������

������������������#�����������������������������������������#������ ��

�� �������������� ����)�����������������������,��*! ���������������������

��������������� ������������������ ��� ����B

�,��*! N��)�$#2!�%/

Page 318: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

����������,��*! ��������������������������"),2#����������� ��� �B

�,��*! N� �"),2$%/

L������"),2���������������������������������������������������������������������

��������������������B

#�)�1�"),2$%/ 44��)�#�����#!""

����� �����

�������������� ����������������:������ ���������������������������� ���

������������"������� ����--������������������� ����."����������

�������������������������������B

• ."�����#�������������#������������ �������������

• S�������������"������� ���������������������������������� �������

• S��������������"������������� ��������E��������������� ������ ����

������������������������#������������������,#!��������,#!�����������

��������*�����

• %��������������#������������������������"�������%��������#��������

����.�����3������#�������������������"������,/�����-�

�����������������������!����������:����������� ��B

#2!��$,�3�*��!���)�,�3�*�%

,2����$,�3�*��!���)�,�3�*�%

�����$,�3�*��!���)�,�3�*�%

"��3�$,�3�*��!���)�,�3�*�%

#2!��D�$,����3%

�"�!�

��)9"*

"��3���)9"*

."������� ���������������� ���� �������������������:��������#�������������

��� ���������������� ��������������!� ���!�� �������� ���� ������������������

���������,E��0,����������������0,����� �����,���������"�� ��� !���<1#�����

����������������������������#� ����/�2-��."��������������������������� ����

������������������������������������������

5��������

�������:�� ������������������������#� ����������� �� ���� ��������������

��������#� �� ��� ��� �� ��� ��� �� ������� ��� 3*�� �������� ���� �� ������ �

���������������������������������������� ���� �������� �� ������������

������������� ���������� ������������3*�� ��� ��B

��� 3*�$%/

�,��*! N 3*�$#2!�N%/

Page 319: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�,��*! N 3*�$#2!��D?�����"?�#2!����G�FC�F%/

;���������������������B

#2!��#/

������/

#2!��#!��T<.U/

�����"����������������� ��������#�#��#���������������������3*����������B

��G�#��13*�$%/ 44��*!����*�#2!�!#�*�?�02��*�,�!#*�������

#��13*�$#%/ 44��*!����*�#2!�!#�*�?�02��*�,�!#*�������

#��13*�$#!��?<.%/ 44�3*��!�� �,��<.�#2!�!#�*�,�������2*�!��!7�#!��

44�)���"��*�!)"���*0"��*�,**��9)�������*!�����

44��2*�,��*!

����**E����������������������������������� ��� ����B

�����**E$%/

�**E�������������#��������������#�������"������������������ ���������

����������� ��� ���� ������B

�,��*! N� �)�9!#E$#2!�%/

�)�9!#E� ���������������!�������������������������� ��������E���������������

���������"���� ��� ������

���3*�"��*�������������G��������������������������������3*������#��"�� ������

���������������������������������#�����������#��������������������3*������������

����������������� ���������� ����������� ��� ����3*�"��*B

�,��*! N�3*�"��*$#2!�D�9?�����"*�?�#2!����G�FC�F%/

3*�"��*�������������"*����������#�����������������������������������������

�������#������������� �����������9�

���3#�)���������������������������������������������������������� �����

������� �������������� ��� ���������B

����3#�)��$%/

����3���*������������������������"),2���������������� ����������,9��� ��!

�������"),2������������������������������:��-� ����������� ��� �B

�,��*! N��3���*$����"*��G�@?�������G���%/

(�������������3���*#������������� ���"*�����������,���������������-���������

��������������������������������� ���������� ����������������������������

)������#����� ����� �����"�� �����������������������" �����������������

��������� �������� ��������������� ����� ��B�������������������� ��#

���������������� ��#����������� ��������������L�����#������� �����"������

Page 320: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

����--�����>��������"���� ��������������#������� ����� �������������������

������� �������������������������������������!�����"�#���'�����������������

3*���3*�"��*��4� ��������������� ��������������������#����������������

�������������6��'����������������������� ���#�3*�1#��B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

#��,����������G�H./

���� !��$%

&

#2!�����,��@T���U/

#2!�����D,@�G�,��@/

#�)��++�A���*��,����38�A/

02�"*�$#��13*�$,@?����%%

&

#��13*�$%/

#�)��++�,@�++�*��"/

#�)��++�A���*��,����38�A/

'

'

���02�"*�� ���������������������������#��13*�����������!�!�����,��-�� ���

����������������������������� ������������%�� �������#��������#����� ��

����������!�����������"�#������� ���10�������������#���������� �������

��#������#��������3*�"��*���� �������3*�#����������������������=. L=9����

�������� ����������� ������������������������������������������� � ��� �"�

�� ���������������!�������������������������������#��13*��

(���� ���� �����AA�,����3� ������ �������#�3*�"��*���������#� ��� �������� ���

����3*�"��*1#��B

(��#")�*�+��,��*! -

(��#")�*�+,����3-

),��3��! *,�!#*�,��/

���� !��$%

&

,����3�"��*/

#�)��++�A���*�������38�A/

02�"*�$3*�"��*$#��?�"��*%%

&

#�)��++�"��*�++�*��"/

#�)��++�A���*�������38�A/

'

'

Page 321: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���������

1������ ���������

(��������������������������� ������ ��������#��������������������������

������#����������������� ����#��������������� ������������������������

�������������������,*�������������" ������������������������ ���

+��� ������ ��� ��������� ��������� ��������� ��� ����� �������� ��������

�"������� �����������������������#������������������������������������,*��

��������6��������� ����G����������"�� ���B

#�)�1,*��$��,S9!,*88�#�%/ 44�,*���"!3,��#�!"

#�)��++��) 9*��++�*��"/ 44��#�!"��)��)�

44���*R)��!"*��� !���)"!������*�!����

#�)��++��#��++��) 9*��++�*��"/

%����� ����������������������������������������F������������ ������������

�����������������������������������"����� �������������������������

���������F����� ������������� ��������������� ���������� ��������������:�

���������������������������������������������"������� �����

�������:�� �������������������!������� ��������������� ��� �������������

������������� ������������� �������������" ��������������)��������:���������

6��'����������������!������� ���������� ��������������B

C�$ ���"&� B��&%�

�*# ����������������,�������-

*��" �����������������������������

*��, ������������������

�"),2 ������������ ��������

2*: ��"����������������

�#� ������������

�*,*���,�"!3,$�% ���������������� ������������

,*�9!,*$9% �����������������9

,*���""$#% �������������������#

,*���,�"!3,$�% ��������������� ������������

,*���*#�,���$�% ���� ����������

,*�0$0% ������������������0

������������"�� ��� ���#� !���@1#��#���������������������� ��������

����

Page 322: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

>�+��&,$�6�(���$�*?

>�+��&,$�6�(*�+�0?

&��+9�+�*$�0��$���,-

�+��*��+25

���������+9�A !�"��3�3/3F3/3�3/3,3/3$3/3)38-

,(&F�$�0��"�<;@B@�CA=�B-

�+��+I,$��"�<�-

�+��+I(���"� <�-

�(&�;�$�)2�(�IF��$HH)�G$,/� �(�IF��$HH)�(��)�$�,5-

DD����$*(+�����$���*0�$�(&�0&��*�+�0&���(��

�(&��66�#�����H�#�66�(���66�+I,$��66�$+,�-

�(&��66�#�$��*��H�#�66�,$��66�+I(���66�$+,�-

�(&��66�#Z$GH�#�66��$G�66�+I(���66�$+,�-

DD�����9��*(���*�+�0&���(��(L$���,$��(��$��

�(&��66�#Z$GH�#�66��$G�66�,$��66�+I(���66�$+,�-

DD����(+L$���(�����+&*F$���(�,$��*��/�0�,�(&�0&��)�$�,�()�1�,���=�1����F��+M�

�(&��66�#��,,$,H�#�66��$�12=5�66�,$��66�+I(���66�$+,�-

DD����%&�L��$+��(0$����(+H��(+L$���&��+9��$�F��$��+,�0�,�)�$�,�1����O$�(�

�(&��66�#��,,$,H�#�66��$�12=5

66��$�)���23 35

66��$�F��$2@ 5

66�+I(��

66�$+,�-

DD������(&�0&���+�)�$�,:1�,���Q/�0�$����(+�B

�(&��66�#�(&+,$,���H�#�66��$�12Q5

66��$�0�$����(+2B5

66�0�

66�$+,�-

DD�����$����(+�Q/�)�$�,�1�,���BH�(&�0&�����$G0�+,$,

�(&��66�#�(&+,$,���H�#�66��$�12B5

66��$�0�$����(+2Q5

66�0�

66�$+,�-

DD����&�0&��+&��:�$�*�+��$,��������$������'

�(&��66�#���+9H�#�66�����+9�66�$+,��66�$+,�-

DD������0��'�����+����$+��)���+(����(+

DD����G0������'�&+�$��)�G$,�)����

�(&�;&+�$�)2�(�IF��$HH)�G$,5-

Page 323: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

�(&��66�#�G0(+$+����H�#

66� �$��(�)��9�2�(�IF��$HH���$+��)��5

66�0��66�$+,�-

DD������0��'��+��+�$9$���$)�:S&���)�$,��+��$G

DD���W+�$��,$��*���)����

�(&�;&+�$�)2�(�IF��$HH,$�5-

�(&��66�#Z$GH�#�66��$�12@ 5

66��$��(�)��9�2�(�IF��$HH�$)�� R� �(�IF��$HH�$G5

66�+I,$��66�$+,�-

DD������0��'��+��+�$9$����9��:S&���)�$,��+��$G

�(&��66�#Z$GH�#�66��$�12@ 5

66� �$�$��(�)��9�2�(�IF��$HH�$)�5

66�+I,$��66�$+,�-

DD�����&���(&�0&���+,���(0

�(&��66�#��+���$,;;;;#�66�)�&���66�$+,�-

8

����� ������ ������������� �����������B

�����H�B<

�$��*��H�AC

Z$GH�@,

Z$GH�AC

��,,$,H�����AC

��,,$,H� AC

�(&+,$,���H� <;@B@=

�(&+,$,���H�<;@B@�CA=�

���+9H��F�,$)

�G0(+$+����H�<;@B@�CA=�$7

Z$GH�A<

Z$GH� A<

��+���$,;;;;

������� �������$��(�)��9�������$�$��(�)��9�#�����������������������������

������ �������� ��� ���� ������ �(�IF��$#� ��� �G��������� �� �$�)� ���� &+�$�)#������

������ �������������������������� ��� �������� ����� �(*�+�0��������

���������������� ������������������������������

�� �������� �������������*�+�0@;�00������������������������������������

������������������� �����"��! ���!���������� ��#��" ������������)�G$,#�������

��������������! �������������B

�(&�;�$�)2�(�IF��$HH)�G$,/� �(�IF��$HH)�(��)�$�,5-

��������#�����������������$+��)��#� )�G$,�����" �������������E�������������������

�$G#�,$�����������

Page 324: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

-����� ���������

��� ���������*����� �������������������!������� ������ �� �� ���� �� ��

���� ��������������������������������������������������������������������� ��

���� �������%����������������������������� ������� �����������������B

• �� ������� ���������������������������"����� �����

• ��� ,*���,�"!3,� ���� �*,*���,�"!3,����� ������ ������� ����� ������ ���

���� ������

• ,*���,�"!3,�����G���������������������,*���

• �*,*���,�"!3,�����G���������������������)�,*���

• �� !������������(��#")�*�� ��� �� ������� �������������������� ��������!

������

6��������������������!������� ���������� ���������������B

C�$ ���"&� B��&%�

�*# ����������������,�������-

2*: ��"����������������

�#� ������������

0, ��� �������� ������������

�*,*���,�"!3,$�% ���������������� ������������

,*���""$#% �������������������#

,*���,�"!3,$�% ��������������� ������������

,*�0$0% ������������������0

������������"�� ��� ���#� !���<1#��#�������������������������� �!

������������

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�+�� !���-

���� !��$%

&

44������!��) *��#�#���*�,���

�����S�*#/

#�)��++�A���*��!�2*:!�*#� !"��) 9*�8�A/

44��������,E���"*!���3�02��*�,�!#*,PP

#���--��*,*���,�"!3,$��,S9!,*88,E��0,%�--�2*:

--��S�*#/

Page 325: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

��+;9$�25-

�(&��66�#�$��*����(+L$���(+�()��$G��+0&�H�#

66�+I,$��66�$+,�-

DD���F�$�M��+��+0&������+9

�����F&)@�A !-

�����F&)A�A !-

�(&��66�#�+�$��������+9#�66�$+,�-

��+�??��$�12@ 5�??�F&)@-

��+�??�F&)A-

�(&��66�#���+9�@�#�66�F&)@�66�$+,�-

�(&��66�#���+9�A�#�66�F&)A�66�$+,�-

8

��� ����� ������������� ������ ����� ���� ��� ���������������� ������������ ����

�(�IF��$HH�M�01�����������#�������� ����������� �����������"��������������

���������� ������������������������������������������ �������������������� ��

�����������#������ ������������ ���������������

��������� ��������� �������� ������������������������������������

��������� ������������������� ��������������������0���������#���������������

��� ����� ��� ���� �� ��� ��� Z���������F���� G[� ����� ���� �������� �� F&)@� ��

��� ����������������������� �������������!�������������������������������B

�F�,$)9��

���������������������������������#�����!���������#����F&)A�

����$�1����� �������������������������������������������������� �����������

����� ��� �"����� ���� ��� �"����� ���� ���� �����E� ���� ����� ����� ������ ��

�������������������������������������������������"���� ��� ������

6��'��������� �������� �����*�+�0A;�00#������������ �������������B

�+�$�����$G�,$��*���+&*F$�H���

�$��*����(+L$���(+�()��$G��+0&�H�=C

�+�$��������+9

�������� � �?$&�D

���+9�@��F�,$)9��

���+9�A�SM�*+(0%

Page 326: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

5����-01

L����������������������#���� ���������������������������������� ��#��� ���

�� ��:�� ����������S�������������������" �������������������������������

����������*������������������������������� �������������� ���������%�����

������������������������������������������� ������������������" ��������������

��������������������#"�,*���� �����������������������������

�����������������������:�#����������������������,��*! ��������������,��*!

��������� ���� ������������� ��,��*! #���,��*! ����� �,��*! #��� �� ��#��� ������

�� ��!�� ����������� ���������� ���������������������������������������������

������������������ ��#��� ��������� ��:�� ��������

&������������������ ����#��������������������F�����������G������������� �B

��,��*! ���,/

����������� �����������B

��,1��*�$A����"*A%/

S������������������� �������������������������������������,��*! ��������B

��,��*! � ��,$A����"*A%/

����������������"*���������"���#���������������(���������������������� ����#����������

�F������,���� �����������������������������������B�������K�E� ������E�������

�������������E������� ���������������� ����E���������������#��������

S���������������������" ��������������������������������������#"�,*B

��,1#"�,*$%/

������������������,��*! �����������������������������������������F������,

����������� ��

��'���>��� ����������������������������#���������������������� ������ ��

����� ��� ���������� �����������*���������#������������������������,��*! #���

����B

�������*�$#2!��D�?����� �G���,S9!,*88��?�������G���"*9)�88��*�����%/

����� �����������*���������#��������������,��*! #���������� ��� �B

�������*�$#2!��D�?����� �G���,S9!,*88�)�?�������G���"*9)�88��*�����%/

����� ��:�� �����*�������������������������,��*! ���������B

�������*�$#2!��D�?����� ?�������G���"*9)�88��*�����%/

����������������������������������������� ����������������������E�������������

���� ������E�������������#����������������� ���������� ��� ����������� ��

����������������������,S9!,*88��*���)��� ��������#��������������������,S9!,*88�)��

*��'�������������������"�� ��������� ���������:���%��������"�� ������������

�������������� ���#���������� ���� ���������"���������������� ����#

������������"*#��7���������

Page 327: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

2����)�������&

6��'������������ ���#���"*#��71#��B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�+�,��*! -

�������"*#��7$��,��*! �N?���,��*! �N%/

���� !��$����!�3#?�#2!��D!�3�TU%

&

���$!�3#�PG�;%

&

#�)��++�A���!"���!�3) *��,�,�*#���*�A�++�*��"/

�*�)��$.%/

'

��,��*! ����$!�3�T@U%/

���$P���%

&

#�)��++�A�!�����*�����)����"*A�++�*��"/

�*�)��$.%/

'

��,��*! � ��)�$!�3�T<U%/

���$P��)�%

&

#�)��++�A�!�����*���)��)����"*A�++�*��"/

�*�)��$.%/

'

��"*#��7$���?���)�%/

���1#"�,*$%/

��)�1#"�,*$%/

'

44����)�#�������"*#��7�#���*,�#2!�!#�*�5975#2!�!#�*����� ��2*����)����

44����2*��)��)��,��*! 1

�������"*#��7$��,��*! �N��?���,��*! �N�)�%

&

#2!��#/

02�"*�$��13*�$#%?�P��1*��$%%

�)�1�)�$#%/

'

S�������"���������� ���������������������������������B

��"*#��7�����"*��)���"*

Page 328: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

������������"*������������������� �����������,��*! ����� �������������������

������'����� ����#������������F���������������������#���������� �����������

������ ����������������)���"*����'����� ����#����� ��������������� �����

�������������������������� ����#�����������������������F���������������)����

�� �����������������������������������������"*#��7�� ���������������������

������������������ ������������������������������� �������#��� ������������!

�!�������������������������� ��������� ����!�������������#�*��#���������������

��������,S9!,*#�������� =�������!�!�����

���������"���"�� ��#������������������������ ������������" ��������*���������

������� ����� ����������� ���������� ��!�� ����������#����������� �#���� ����

����� �������������� ���������������� !������������������B

(��#")�*�+��,��*! -

),��3��! *,�!#*�,��/

(��#")�*�+�,��*! -

�������"*#��7$��,��*! �N?��,��*! �N%/

���� !��$����!�3#?�#2!��D!�3�TU%

&

���$!�3#�PG�;%

&

#�)��++�A���!"���!�3) *��,�,�*#���*�A�++�*��"/

�*�)��$.%/

'

��,��*! ����/

���1��*�$!�3�T@U?� ��,88��%/

���$P���%

&

#�)��++�A�!�����*�����)����"*A�++�*��"/

�*�)��$.%/

'

�,��*! ���)�/

��)�1��*�$!�3�T<U?� ��,88�)�%/

���$P��)�%

&

#�)��++�A�!�����*���)��)����"*A�++�*��"/

�*�)��$.%/

'

��"*#��7$���?���)�%/

44�����0�#"�,*?���*��!����*!���2*��)��)����"*

#2!��#/

��)�1#"�,*$%/

Page 329: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

� �

)(&�;(0$+2��9L�A!/� �(�HH�+5-

1���$�2)(&�;9$�2�5/�P)(&�;$()255

�(&��66��-

)�+;��(�$25-

)(&�;��(�$25-

8

���������� ����������� ������������ ������������B

)�+;(0$+2��9L�A!/� �(�HH�005-

B

)���$�*� )�+2��9L�A!/� �(�HH�005-

�������������������� ���������������������������������������"��������� �������

�������������������������������������� �������#��������������������������

�"���#��������������

(�������� �����������)��$�(0'������������������������!������������������

����9$�� ���������6��#� �������'�� �������� ����*��+� �������� ��� ����������

)��$�(0';�00�����������)��$�(0'����������������B

�(+����+�����"�@ -

L(�,�)��$�(0'2�)���$�*�N�+/�()���$�*�N(&�5

����� �+����+9���!-

1���$�2�+;9$�2�+����+9/���/� 34+35/�P�+;$()255

(&��66��+����+9-

DD�9$���+,��(0'���$�+$1��+$

������-

��"��+;0$$M25-

�)�2��""�34+35

�+;9$�2�5-

(&�;0&�2�5-

8

8

8

(���������������������������#��+����+9#��������������� ���������� ����������

���������������� ��������� ��#�����������������#������������������������������'�

����������������������#������������"��������00�����������.��������#����

���������������������+����+9#�������������������������������������������� ��

��������������������!����������

Page 330: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

%���������������������#��������������������� ��������(������������������������!

���������#������**E���������������������������������������"�������������������

�������������������� ���(������������������F���������������,�����!

��-����B

02�"*�$��13*�$��,����3?����%?� P��1*��$%%

&

�)��++���,����3/

44�3*��!���#��7��2*��*0"��*

��13*�$%/

�)�1�)�$FC�F%/

'

������������#�����3*������������������������������������������#�������������#��������

�������� ������ FC�F��(�� ����� ���� ���� ������ �� ���� 3*�� �������� ����� ������ �

������������������������"�������������������������������� ����)��������������

�����������!����������������������������� ��������

����������������������������"*#��7��������#��������3*�"��*������������� �����������

3#�)�����������������������������������B

#��,����������G�@../

�������"*#��7$��,��*! �N��?���,��*! �N�)�%

&

"��3����!"S#2!�,�G�./

#2!�� ��,����3T���U/

02�"*�$��13*�"��*$��,����3?����?� FC�F%?�P��1*��$%%

&

���!"S#2!�,�6G���13#�)��$%/

�)��++���,����3/

'

#�)��++�A��"*�#���*�8�A�++����!"S#2!�,

++�A�97�*,A�++�*��"/

'

3*�"��*��������������� �����������������!��������������#����������������������

��������� ��������!�������������������������������������� �����������������

�������#�����������������������������������������������������%�����������

�����������#����� ������������������������ ����

<���� )���������

������������������������ ����������������������������������������#�����

��#���������������������������� �����������������)� ��������#���������� ���

Page 331: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

������������ ������������������� ������������������� �����"���������

��'������������������:����������������������������������������B

�*!� =������������������������������� ���������

0���* (������� �������������������������������� ���������

,**E3 +������� ��������������������� ���������� ��������������

�*""3 =��������������� ��������������������� �����

,**E� +������� ���������������������� ���������� ��������������

�*""� =��������������� ���������������������� �����

����������������� ����� ����� ����� �����������#������������������ ��

�����������������#�����������������������������������.�����3��������

�" �������������"�� ���������������������������

Page 332: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

���������

� (������ ���� �������������������������� ���������#� ����������� ����

��������� �� ��� ���� ���� ������ ��$/3010�0�� ,�G���� �� �� /O-� �� ��

�������� ���������������#������������������������������0���������#�����

F������������������������������C�'�����! �����������K���

� (������ ���� ����� �� ���������� ��"*��������%������ ����� ���� ����� ��� ����

�������������� ,�������!���������-��4������ ���� ����'����������� �������

��������������������� ���*�#�7����������������������"�������!����������

������������������������������B

#�YG�E*7/

�����#������#2!��������������E*7�������������������������������������

�����������������������#�

Page 333: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�% �����������#��&�)��������

��� �������� ����� ����#� ����� �������������� ������������#������������� ������ ��������

���������������������AA�����������������������������������������������B�#,����#�#,����3#�#�7�*#

# !�2#�#,��"�9�

%������� ����������������������#������������������������������������������������������

�������� ����������AA� �����'������������!��������"�!��������#�����!���������������!

��������� �������

(��#")�*�+#,��"�9-

)& ����&�"<=E

!9������������������ ��������������

(��#")�*�+#,��"�9-

$"���%< $"�$?=E

!9,� ������ ���� ���������������� ���� ������

�) �

(��#")�*�+# !�2-

�&������&%<�&����F=E

!#�,���������������������:�������������K�

��7��

(��#")�*�+# !�2-

�&�����% $<�&����F=E

!,����������������������:�������������D7�:3

��7�:3�

(��#")�*�+# !�2-

�&�����"�$<�&����F=E

!�!������������������������:�������������D7�:

3���7�:3�

(��#")�*�+# !�2-

�&�����"�$�<�&�����;��&����F=E

!�!�<�����������������������74:������������

D7����7�#���������������������������������

�������������G������������������������

(��#")�*�+#,��"�9-

$"� �"�F "<)& �<2�=<==E

!�*:���������������������� �� ������������������

���������������������������������!

K���������������������������������

(��#")�*�+#,��"�9-

�&�����"&�<�&$%"������2%=E

!���������������������������������������

�����������������������,#���������K���

��

(��#")�*�+#,��"�9-

$"��"& <�&$%"������2%=E

!�������������������������������������������

���,#���������K������

(��#")�*�+#,��"�9-

$"��"&�<�&$%"������2%=E

!��"�������������������������������������

���������,#���������K������

(��#")�*�+#,��"�9-

)& ��2�%�����<�&$%"�)& ��2 ��;��&$%"�)& �

2��%�;�% G�H"�$;�% G�H"�% G�;� $"<2�&?�=

<�&$%"�)& ��2 ��;��&$%"�)& ��2���?�$"==E

9,*!�#2� ���� �� ������ ������ �� ���� ����

���� �����������9!,*������������� ����

����������������������������������������

E*7�� ���������������������������� �������

���������������K����������������������������

,�V*�� ����� ��,�V*S����������������������������

���,���*�12�� �����������#� ���� �������

���������������������E*7�����E*7��������������

������������#��=�������������

(��#")�*�+#,��"�9-

)& ��2����&�<% G�H"�$;�% G�H"�% G�=E

#!""�#����������� �����������������F����#

����� �� ��K�� ,��� �����-� �� ��K��� ��� �������

�������� �������������������������,�����#

������������ !""�##����K�!�����������-#���=��

��������������������������������

(��#")�*�+# !�2-

�&������ �<�&����F=E

#*�"��������������������������#�� ����������

�������#�����������������������:�

Page 334: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

(��#")�*�+#,����-

)& ����������<AI,J�2��=E

#"*!�*������������!�!����������������������!

���������������� ��������������

(��#")�*�+# !�2-

�&�����&%<�&����F=E

#�,�������������������:�����������

(��#")�*�+# !�2-

�&�����&%�<�&����F=E

#�,2������������� ��������������:�

(��#")�*�+#,��"�9-

� )H"�� )< $"�$;� $"��=E

�������������������G����������������������:

��� ������������������������������������G��

����������������������� �����S�1� ����� �

���S����������������#,��"�9�

(��#")�*�+#,��"�9-

)& ���F "< $"�%"�"%=E

*:������������������������� ��������!

������� �����������,�!�),� ���������� �� ���

������� ������������������`�� ������� ��

������������������������������������

(��#")�*�+# !�2-

�&�����F�<�&����F=E-

*:��������������������*������������� ����

:�

(��#")�*�+# !�2-

�&�������%<�&����F=E

�!9,���������������������������:�

(��#")�*�+#,����-

$"����&%�<AI,J�2��=E

�#"�,*����������������������� ������ ����

��������� ��������������������������������������

��� �������� ������ K�� �� ����������� ����

��������������

(��#")�*�+#,����-

$"���&�<AI,J�2��=E

�*��� ������ ��!K�� ��� ���� ���� �� ���� ����

������ ����� ������������ ������E��������

K������������

(��#")�*�+#,����-

$"�����&�<AI,J�2��=E

�*���������������������� ���������� ��������

��������������!K�� �������������

��������������� ����������������� �������

�����#�K����������

(��#")�*�+#,����-

$"����%�<AI,J�2��=E

��"),2�������������������������������������

������������������������������������� �����

��������� �����������������K���������������#

������������

(��#")�*�+#,����-

$"����"�<AI,J�2��=E

�3*�#� ������ ������"���������� ��� ���� ����

�����������������������������������!

�!�����

(��#")�*�+#,����-

$"����"�&%<AI,J�2��;���&%H"�2�"�=E

�3*���,� ����� ��� ���� ����� ���� ���� �����

������������������ ��������������� ����� �

���,S����������������#,������ ����������������

��!K������

(��#")�*�+#,����-

�����2���"%<�����2%;� $"�$;�AI,J�2��=E

�3*�,�������������������������� ����������

������������������������������������������

5�@����������������������������������������

��������������������������������������,������

�������!���������� �������������� ��� �������

������,#���=��������!�!��������

(��#")�*�+# !�2-

�&������&&�<�&����F=E

�"���������������������������#�� ������������

��)9"*#������������������������:�

(��#")�*�+# !�2-

�&�����?&�<�&����F;��&�����=E

� �������������������������������������:

���7�����7����K�#������������������������

Page 335: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

(��#")�*�+#,����-

AI,J�2�&��$<�&$%"������2%;��&$%"�����

2?&��=E

���*�� ���� ���� ����������� ��� ����������,� ��

������������������ �������� ��������������

�����������*�������������A�A#�A0A�����A!A��

������#������������� ������E������� �����

�����"����������6������������� ��������������

������������������� �����9� ��� �����"��� �� ���

���� ������ �� ������ ����� ��� ����������� ���*�

�������� ���������������� �������=����

��

(��#")�*�+#,����-

$"���� $"�<AI,J�2��;��&$%"������26�&�?�"7;

---=E

�����������������������������#�����������#��"�� �

����������� ������������������������ ����������

���

(��#")�*�+#,����-

$"���"�< $"��;�AI,J�2��=E

��)�#�������������������#������������ �������

����������������##���������

%�������#������������������������#�������������

������)�,�3�*��#2!��������������������!��

�������������

(��#")�*�+#,����-

$"���"%<�&$%"������2%;�AI,J�2��=E

��)�,�����������������,������������ ����������

���� ���������������������!��������������#

��������

(��#")�*�+#,����-

% G�H"������<)& ��2��;�% G�H"�$;�% G�H"

�&$";�AI,J�2��=E

��*!������#������������� �����������������

�����������9)�#�� ���#�)����F���������K����

��� �������� ������ ���� ������ �� �F����

����

(��#")�*�+#,��"�9-

)& ������<)& ��2�=E

��**��������������������� ����������������

������������������������������&������**���

������#�����������������������������������

��������������������������������������� !""�##

#!""�#���*!""�#��.G�������������**#��������!

�������������#�����*!""�#$�?�.%/�%������

����������� �����������#���**�������������

��������������������=���

(��#")�*�+#,����-

AI,J�2���&��$<�&$%"������2%;��&$%"�����

2?&��;�AI,J�2��=E

��*��*�� ��������������������������������,����

��������������������������� ��������� �������!

�������������������� �������=�������

(��#")�*�+# !�2-

�&�������F�<�&����F;� $"�2�F�=E

��*:�� � ������� �������! ���� �) 9*�� :� ��� ��

���B��������������������" ������������������

���������K���������������0�1�������0�����:

�G������D$<DD�%�� ���������������������������

�" ���������������*:������:��������������K�#

����������� �������������������K��

(��#")�*�+#,����-

$"��%��$�<AI,J�2��;��&$%"������26�&�?�"7;

---=E

�,#!������������������,#!��#�����������#��"�� �

����������� ���������������������� ����������

���

(��#")�*�+#,����-

$"��%�� <AI,J�2��;��&$��$;� $"�&� � $=E

�,**E������������������������������������(���

������#�������������������� ����������������

������������������������������ ������������

��������� ��� ���3���� ���3������� ��� ���� �

����� ���� ������� �������� ��� #,����B

���S���,����� �� ����-#� ���S�= ,�����

�������������-�����S��K,���!�!����-��L���

�������"��������#�����������K�#��������

�����������*""��������������������S����

�������������������!K������

(��#")�*�+#,����-

$"��%�"�&%<AI,J�2��;��&$%"���&%H"�2�"�=E

�,*���,����������� ����������������� �����

�������� �3*���,� �������� ����������������

��!K������

Page 336: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

(��#")�*�+#,����-

�&$���"���<AI,J�2��=E

��*""���������������������� ����������������

�������������#��������!�*�����

(��#")�*�+#,����-

% G�H"��K� "�<)& ��2��;�% G�H"�$;�% G�H"

�&$";�AI,J�2��=E

�0���*��������#�)����F���������K��������������

����������9)������������� �����������������

������������������������F�������������%

����������������#�)�����������������

(��#")�*�+#,����-

$"���"�<AI,J�2��=E

3*�#� ����� ���� ��"�� �������� ��� ���� ����

��������������������������#����������!

�!���������3*�#������������������G��������

���3*�#�

(��#")�*�+#,����-

$"���"����<=E

3*�#2!�������������"��������������������

�� �������������������������#����������!

�!���������3*�#2!�$%�����������������G����!

�������3*�#$,����%�

(��#")�*�+#,��"�9-

�����2��"�$)<�&$%"������2%=E

3*�*��� ������ ���� ������� ������������!

���������������������������������������������

����������������,������������������������������

��������� ���,#�3*�*��� ������ ������� �����

)����������������������!�� �������

(��#")�*�+#,����-

�����2��"%<�����2%=E

3*�,������������������� �������� �����������

�����������,#�� �����������������������������

����� �� ����� ��������� ��� ������ ,� ��� ���

����������3*�,#��������� ����������!�!����

���

(��#")�*�+##�7�*-

$"� %��$?< $"��=E

�,!"�) � ��������!K�����#� ����� ��������#

K����������

(��#")�*�+##�7�*-

$"� %�����< $"��=E

�,!"�2!���������!K�����#������ �������#�K�

��������

(��#")�*�+##�7�*-

$"� %�$"��< $"��=E

�,#���"���������!K�����#����������������!

����,0���0/$#��4.*�,0�$$-#��������%��������-#

K����������

(��#")�*�+##�7�*-

$"� %� � "< $"��=E

�,��3��� ������ ��!K�� ��� #� ��� �� �����#� K�

��������

(��#")�*�+##�7�*-

$"� %�����< $"��=E

�,3�!�2� ������ ��!K�� ��� #� ��� �� �������

�������������������� ���#�K����������

(��#")�*�+##�7�*-

$"� %�&K��< $"��=E

�,"�0*�� ������ ��!K�� ��� #� ��� �� �������

����������������������K#�K����������

(��#")�*�+##�7�*-

$"� %�� $"< $"��=E

�,��������������!K�����#������ �������������!

�������������� ���#�K����������

(��#")�*�+##�7�*-

$"� %�$�"< $"��=E

�,�)�#�� ������ ��!K�� ��� #� ��� �� �������

������������������ ���#����������������#�K�

��������

(��#")�*�+##�7�*-

$"� %%����< $"��=E

�,,�!#*���������!K�����#����������� ���#

���#� �������� ���#� ������� ����#� ��������

������#�K����������

(��#")�*�+##�7�*-

$"� %����< $"��=E

�,)��*����������!K�����#�������� �!����

������������������%���`#�K����������

Page 337: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

(��#")�*�+##�7�*-

$"� %F� � "< $"��=E

�,:��3�����������!K�����#��������"��������

�����������������������#�%���)#��0����#�K�

��������

(��#")�*�+#,��"�9-

�&$�����%<�&$��$=E

"!9,����������������������������������������

�������������������

(��#")�*�+# !�2-

�&�������F�<�&����F;� $"�$=E

"�*:��������������������������! ���������

������������:�D$<DD�%�

(��#")�*�+#,��"�9-

�� )H"��� )< $"�$;� $"��=E

"�������������������G����������������������4

��� ������������������������� "��3�������

R)��������* ����������������� ��"���S��� ��

�� ��"���S����������������#,��"�9�

(��#")�*�+# !�2-

�&�����&�<�&����F=E

"�3�������������������������! ���������

���������������������:�

(��#")�*�+# !�2-

�&�����&���<�&����F=E

"�3@.�������������������������! ���������

��������������������0���:�

(��#")�*�+#,��"�9-

)& ��2?���&�<% G�H"�% G�=E

!""�#����������� ������������������F���

�������K��,��������-���,�V*�� ����������������

�� ������������������������#���=���������

��������������������������+�������!

��������� !""�#������������������������� �����!

���������

(��#")�*�+#,����3-

)& ��2?�?���<�&$%"�)& ��2%;�$% �$��

������;�% G�H"�$=E

* #2���������� �����������������������

��������������#�����������������������������

��������,�� ������������������=����������

��� �� ������� ��� �� �� ,�V*S�� ��� �������� ��

,���*�12�����������������������

(��#")�*�+#,����3-

$"�?�?�?�<�&$%"�)& ��2%�;��&$%"�)& �

2%�; % G�H"�$=E

* # ���� ��������������������������,@

������������,<������������������������������#

�G���� �� � ������ ����� K�� �� ������� �

�������,@������"���� �����������������#��G���

��������������,<�

(��#")�*�+#,����3-

)& ��2?�?���<)& ��2&"%;��&$%"�)& ��2 $%;

% G�H"�$=E

* #�7������������������������� ������

���� ���� ��,� �� ���� �����)�,�� ��� �������

�������� ��������)�,�

(��#")�*�+#,����3-

)& ��2?�??&)�<)& ��2&"%;��&$%"�)& �

2 $%;�% G�H"�$=E

* ��*� ������� �� ��������� �� ��� � ���

�������������,������������)�,#������������

�������� ���� � �� �� ����� ����� ����� ��� ���

�F������������ �������� ���������� ��

���������������� ��������)�,�

(��#")�*�+#,����3-

)& ��2?�?%�"<)& ��2%;�$% �$���������;

% G�H"�$=E

* ,*�� ������� ���� ����� �� ��������� �� ���

����,� ����� ������������ ������������#�� ��

���������������� �������,�

(��#")�*�+# !�2-

�&����?&��<�&����F;��&����2 �"�=E

���� ������ ���� ��������� ����� :� ���� ���

�������� �����:����������)9"*� ����������

(��#")�*�+#,����-

)& ������&�<�&$%"������2%=E

�*�������� �������������������������������

������ ,#� ������� ��� �� ���� ���� ��� �

����������������������������������������

�����������������"��������������*������������

��� �������������������*����12�

Page 338: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

(��#")�*�+# !�2-

�&�����&K<�&����F;��&�����=E

��0�������������������:������������� ����

7�������������������! ����������

(��#")�*�+#,����-

$"��� $"�<�&$%"������26�&�?�"7;�---=E

������������������������� ����������������

���� ����� �����#� ���� ����� � ������ ����

��G���������������������������������#���!

����� ��� ���� �������� �� �� ����� �� ��������

�����������������������������G���������

���������������

����� ��� ���� ������� ����� ����� ���� ����

��������B

�?��?��?�)�:?��� ��������������� �����������

������������������������������,�#�-#�����

,�-#� ��������� �������� ,)-� � ��������� ��"�!

��������,:������-�� ���:�����������������

�������!9#�*�E�����������K���

�� ����������������������������������������

�����T5U���1���#�����������������������

,0-��������������������� �������,�-����� ���!

��������J01���� ����������� ����������5����!

�����E��� ���������K��������������������

����������� ������

*?��� �����������������������������������

�����������������������T5U�1���*c����(����

���� ������������������� ��������� �����!

������ ������� ���5���������E��� ��������

K��������������������� ����������� ������

3?���� ����"�!�����)9"*������������ ��������

���������*��������*���������������������" ����

�������������������������������������!2�

�������������G���������� �������� ������

K��������������%��������� ����� ���

�������������������������������

#� ����������������� �������������������

,� ���������������������������������,�������

����-���������������������������������!

����������������������������������������

�������������������������������������� �!

������� ���������������������

��4�� ����������������� ��������� �������D�

�� ��� ���������� �������� ��� �� ����� �� ��

������������������������������������������!

������� ���������������������������������

J�4�� �������������J�

%� ����� �������������� ��� ���������� ���

������������� ���������������������#��������

���� F�����������#� ������� ���� ��������� ���

���������� ���

%�� ��������������� ���� ������ ����� ���� ���

��������� � �������� �������������������

������ ���������� ����� ������ �����#���������!

���#������� ����#�������K�������������������

���"����������0�

%����� �����#�����������#�����!F��������E�������

��� ����!F������������ ������������ 5������ ���

���������,������������������� ������#���

���-���������������������6�����������������

��� �����������������E���� ������������������

��� ������ ���"������� ���������������������

7������� ��� � �������� ��� �����������������

� ������� ��� ������� ��� �� ����!�� � ���� ��

�������� ����������������������� �����������

��"������������������������������ �����

����������#����������������������������

�������� �����������������#�������������

�������� �������������� �����#�����������

������������������������� ������������! ���

�����

*�������������� 2#� "� ���� �� ��� ����������� 2

�������������� ������������������� �����

�����,2���E�"������"��3������������"��3���)9"*�

(��#")�*�+#,����-

$"��"�< $"��;�AI,J�2��=E

�)�#�������������������#������������ �������

������������������E�������������������)�#

�����������������G�������������)�#�

Page 339: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

(��#")�*�+#,����-

$"��"����< $"��=E

�)�#2!�������� ������"���������� �� �������

�� ������� ������ ������������#������

����)�#2!�$#%� ��� �������������G��������� �

�)�#$#?�,���)�%�

(��#")�*�+#,����-

$"��"%<�&$%"������2%=E

�)�,�����������������,����������������� ��#

������� ��� �� ��������� ��� �������� �����

��� �� �#� �������� �� K�� � ������

������

(��#")�*�+#,��"�9-

�����R,���$�����D9!,*?�,�V*S���?�,�V*S��,�V*?

���$D#� �%$#��,�������DE*7?�#��,������

D*"* *��%%/

R,���������������� �����������9!,*#������

�������� �� ��������� �� ��K�� ,�V*#� ������ ���

�������� a������� ��������� ��� �������

#� ���� �����������������������������E*7

��������������������#�K��� �������������

�� ����������������E*7�������������#��G�����

������������*"* *���

(��#")�*�+#,��"�9-

$"���$�<=E

�!�����������, ����-������������������

�����K�������������/3#$5$�

(��#")�*�+#,��"�9-

)& ��2�����&�<)& ��2�"�;�% G�H"�% G�=E

�*!""�#� �������� ���� ��K�� �������� �� ���

�F���� ������ ��������� ��,�V*�� ����������

�������� �������������������������#�

�=������������������������������������

����=��� ��� ������#� ���� ������ �� ���� ��� ��!

����������*!""�#$���?�.%/��������������������

������#�� ������� ���������������� ������� ��

�G�������������**$���%/�

(��#")�*�+#,����-

$"���?&)�<�&$%"������2%=E

�* ��*������� ���� ����������� ��� ����������,#

��������K�����������#���!K������

(��#")�*�+#,����-

$"���$�?�<�&$%"������2%�;��&$%"�����

2%�=E

�*�! *�������������������������������������

������,@���������������,<#���������K���

�������#���!K������

(��#")�*�+#,����-

)& ����K $�<AI,J�2��=E

�*0���� ������ ���� ����� ������ �������� �� ���

��������������������� ��������������

(��#")�*�+#,����-

$"�%��$�<�&$%"������26�&�?�"7;�---=E

,#!������������������������� �������������

�������������������� ����������� ������!

�������� ��������������������� ��������!

��������������������������������������� �!

������������������������������� �����!

������� ��� ������ �� ���� ����������� ���!

��������������,��!������ ������-������!

������������������������������ ��������

��"����!������ ���������������� ���

������������,#!������������B

�?� �?� �?)?� :� =���� �� �������#� ������#� ����#

������������"�����������������������!

����� ������� ������������������ ������ ���!

�������������������������

*?��?�3�=�������������! �������������� ����

������"�!�� ������ ����������������������������

#?�,�=���B�,#-��������������������,�������

�-E�,,-����������������������� ����������� �����

���������� ����� � �������� ��� �����������

�����

��=������ ����,�� �� �������D#������ �����

������-����� ���������� ����� � �������� ��� ���

�������������

��%������������������������������,����D-����

���������������������������������������

� TU�=������������������������� �����������

������������������������������������ �������

���������� ����� � �������� ��� �����������

������%�����������������������

Page 340: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�TYU�=����������������������� ��������������

������������������������������������ �������

���������� ����� � �������� ��� �����������

������%�����������������������

J�*������J/��������������

%� ����� �������������� ��� ���������� ���

�������������� ������������������� ��

������� ��������"������������������

%������������������ ���� ��������������� ���

���������������������� ������������ ��!

���������������������������������

+�"��������������������� ��������������������

����� ����J� ����� ��� ���� ����� ������� �� ��

��������� ������������ ������������ ������"�!

��������������������������������"���������#���

���#���������������������

*�������������� 2#� "� ���� �� ��� ����������� 2

������������� ������������������ ��������

������������ ��,2�����"���������� ������������

��� �� ����� �� ������������ �� �� "��3#�� �

�����������������������J�#�J3�����J*�� �������

�� ����� ���� �� ��� ������������ ���� ����� ���

���������� �� ����)9"*����������� �� ��� ����

����������"��3���)9"*�

(��#")�*�+#,����-

)& ��%�"��<AI,J�2��;������2%=E

,*�9)���������������������������� ����������

�����,E������������������� ������������,�����=��#

��������������������������������

(��#")�*�+#,����-

$"�%�")��<AI,J�2��;������2%;� $"�?;�% G�H"

% G�=E

,*��9)������������������� ������������������

� ������������������� ����������������������!

���������������������#������������ ����

�������������� #���������������#,������S����#

S����� ���� S����� ������ ����#� ����� ���� �

����������� �������������,�����������#�����������

�����������������#��������������K�����������

���,�V*�� �������������������!K������

(��#")�*�+# !�2-

�&����% $<�&����F=E

,��������������������:�����������

(��#")�*�+# !�2-

�&����% $�<�&����F=E

,��2������������� �������������:�

(��#")�*�+#,����-

$"�%�� $"�<�����2%;��&$%"������26�&�?�"7;

---=E

,������������������������������"�� ������������� ��

���������������������� �����������,#���������

����!����������

(��#")�*�+# !�2-

�&����%D�"<�&����F=E

,R���������������!����������G��������:E

������������:���������������������

(��#")�*�+#,��"�9-

)& ��%��$�<$% �$��� $"�%���=E

,�!������������������������, ����-�����

�������������,**�#���������������������������

���#�������������

(��#")�*�+#,����-

$"�%%��$�<�����2%;��&$%"������26�&�?�"7;

---=E

,,#!������������������,#!����"�� ������������� ��

�������������������� �����������,�

(��#")�*�+#,����3-

�����2%"���"<�����2%�;��&$%"������2%�=E

,��#!��� �������� ����������,<������������

,@������������� ���������������!

����������������

(��#")�*�+#,����3-

�����2%"����<�&$%"������2%;� $"��=E

,��#2���������� �������������������������

��������#����������,��������� ��������#����

����������,�

(��#")�*�+#,����3-

$"�%"��?�<�&$%"������2%�;��&$%"�����

2%�=E

,��# ���� �����������������������������

Page 341: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

����������������#��G������������������K�

�� ����������������,@������"���� �������

���������#��G������������������,<�

(��#")�*�+#,����3-

�����2%"����<�����2%�;��&$%"������2%�=E

,��#�7�� ����������,<���,@#��� ������������

����������������������� �����������������

�������,@�

(��#")�*�+#,����3-

% G�H"�%"��%�$<�&$%"������2%�;��&$%"�����

2%�=E

,��#,�����������������������������������������

������������,@����������������������������!

������������,<�

(��#")�*�+#,����3-

�����2%"����&�<% G�H"�$=E

,��*������������� ������������������ ��!

��������������!�� �����������������

(��#")�*�+#,����3-

% G�H"�%"���$<�&$%"������2%=E

,��"*��������������������������������,#���

����������������!��������

(��#")�*�+#,����3-

�����2%"�$��"<�����2%�;��&$%"������2%�;� $"

$=E

,���#!��� ��������������������������,<��

,@������������� ���������������!

����������������

(��#")�*�+#,����3-

$"�%"�$�?�<�&$%"������2%�;��&$%"�����

2%�;� $"�$=E

,���# �����������������,��# �#������� ������

���������������

(��#")�*�+#,����3-

�����2%"�$���<�����2%�;��&$%"������2%�;� $"

$=E

,���#�7�� �����"����������������#����������

,<�������������������������,@�������������

�������������������!�������������������������

,<�����������%� �������,@�����������

(��#")�*�+#,����3-

�����2%"���� <�&$%"������2�%�;��&$%"�����

2%�=E

,���9�E��������� �����������������������

���������,@������������������������,<#�

��9L**����������������������������

(��#")�*�+#,����3-

�����2%"�����<�&$%"������2%;� $"��=E

,���#2�����������������,��#2���"�� ��������� ����

�� ���� ��������������� ������������ ��� ���

����������������

(��#")�*�+#,����3-

% G�H"�%"�%�$<�&$%"������2%�;��&$%"�����

2%�=E

,��,�����������������������������������������

��,@������������������������������������

,<�

(��#")�*�+#,����3-

�����2%"�%"�<�&$%"������2%�;��&$%"�����

2%�=E

,��,����������� �������������������������

,<����,@#���=����������������������

(��#")�*�+#,��"�9-

�&����%"�"&�<�&$%"������2%;������22�"�=E

,������������������������������! ���������

���������� � ����������� ���� �������� �����

������ ����� ,��%�� ������ ������ �������

� ������������#���� ����������#����������

������� �������� ���������� �� �������� ���#

������� ������*����������������� �����

��������������������,�������,���������������

�� ���������� ����������������������������!

��E� ��� ���� �������� �� ���� ��� ��� 9L**#� �

�����������������������������������������

����� ��� D����� !���$,%� ��� �G��������� �

,�����$,?$#2!�� DD%.%�

(��#")�*�+#,����3-

�����2%"�"& <�����2%�;��&$%"������2%�=E

,����E� �������� ���� ������ ,@� �� ��������� �

��G��������K��������"���������� �����

��� � ���������������������� ��� ���

Page 342: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

�� ����������,<�� �������������������������!

������#� �������� ������ �� ������ �"������

���,@�������������������������������,<�

,����E� �������=�������� ��� �������� �����

������

(��#")�*�+#,��"�9-

�&$��%"�"&�<�&$%"������2%;������22�"�;� $"

��%�=E

,����"���������������������������������� �!

���������������������������� �����������,�

*�������������� ���� ��� ������� ��������� ��

��������� � �� ���� ������������� �����������

����� ���� 9!,*�� ��� ���� �������� �� ���� ��� ��

�=��#��� ���������������������������������

����� ��� ����� ��� D����� ��� �� ������� ���� ��

����#� ����� ������� ��� ���� �� ,� ���� K�� ��

�����������9!,*����K�#����������������������

������������������������ � ��� � � � � #

�����������������������������������������/5�

%����������������������������������

����� ������ �� ���S���� � ���S���#

�����������"� ��,12�

(��#")�*�+#,��"�9-

$% �$����&$��%"�"&�<�&$%"������2%;�����

22�"�;� $"���%�=E

,����)"����������������,����"��"�� ������������

�� ��������������������������=���S���

����=���S����

(��#")�*�+# !�2-

�&����"�$<�&����F=E

�!����������������������:�����������

(��#")�*�+# !�2-

�&����"�$�<�&����F=E

�!�2������������� ����������������:�

(��#")�*�+#,����-

AI,J�2"?�� ��<=E

� ���"*��������� ������������ ���������

�����������A096A��������������������!

����� ������������������=�������

(��#")�*�+#,����-

�����2"?�$�?<�����2%=E

���,�����=��#�� ��! �����������������������

���������������������"�����������������������

����� ����� �������� ������������ ���,� �����

�=��#��������������������������������������

,�

(��#")�*�+##�7�*-

$"�"&�&K��< $"��=E

��"�0*���������#������!���������������#�

(��#")�*�+##�7�*-

$"�"&����< $"��=E

��)��*���������#���� �!���������������#�

(��#")�*�+#,����-

$"�$��"�< $"��;�AI,J�2��=E

)�3*�#�������������������#������������ �����

�������E�#������������������������"������� ��

������������������������������������

����

(��#")�*�+#,����-

$"�)��� $"�<AI,J�2��;��&$%"������26�&�?�"7;

)�H� %"����=E

���������������������������������"�� �������!�3���

������������������������������������������!S,�!��

���������������,��!�312�

(��#")�*�+#,����-

$"�)�� $"�<�&$%"������26�&�?�"7;�)�H� %"

���=E

�������� ��� ��������������������"�� �� �����!�3� ��

������������������������������������������!S,�!��

���������������,��!�312�

(��#")�*�+#,����-

$"�)%�� $"�<�����2%;��&$%"������26�&�?�"7;

)�H� %"����=E

�,����������������������,��������"�� �������!�3���

������������������������������������������!S,�!��

���������������,��!�312�

Page 343: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

-����

�"�4��!

#���302

O��302

OW��302

V��302

VW��302

J��302

JJ��302

JW��302

,-��302

U��302

UW��302

A��302

AA��302

AW��302

!��302

!!��302

!W��302

!M��302

!MU� �������/#�302

���302

�U����/# 302

�� ���

��������"��53

�9����3

:��302

:W��302

BB��302

P��302

PP��3�# 302

PPW��302

PW��302

W��302

WW��302

M��302

MW��302

MM��3�# 302

MMW��302

\B����5# 302

]^��302

b��302

bW��302

X��302

XW��302

c��302

*

%����������������32�

%������������33�

%����������������$/

%�����!��������������52

%������������������1/

%�����!�� �����2�

%��������������� ����5

%������1�

������1�

%�������������5/

������1�

���]���^���1�

%��������� �������3# 2/

%�����30#���5

����������10

%�������������5�

����������������$

�� ��������15

�������������03

�� ����21

%������21

%������������������3��

%������������3#��20# ��/

%���������������$

����3�2

�����3�

�����3�

�����$3

Page 344: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

���d ����10

%�����������������������3/

������3�2

�����3��

&�����������2#��3��

��������33�

�����d�������1/

�������3��

&�����K���3�

&�������� ���30$

����� ����/

&������AA�&��������

&����������$

��������������/2

�������/2# �/$

&����!������������� ����/0$

���������������3$�

�H��3

�AA�*������2

�AA����������� ���$0

�AA���������*������3$�

�!���������

�����������������55# 5�

���������������55

��������2$

�� �������3�2

���������������355

����3�

������������������21

�������� ������2�

�������������/5

��������K���21

�����3�

�������/#��33#���$0

����������52

�����������33

����������#����������$�# ��0

����������3/#��3��

����������������$1

�����������3��

������������3/

����������33#���51

��������������33�

�F������51

�� ����$�

�����#�������������52

��� �������313# 315#��31�#��31�

����������51

������3��

������������2

�����3�

����� �������$# �5�

�����������������������1�

���������

�� ���������������1

�� ����������������1

�����������" ����������5

���������� ���#�\B����5

����������������������1

��������# ��5

����!G����������������������/

����d������15

����������21

��������������������5

����������2# 3/#�����

�����������5

������� ���������3/3

���������������3/�

����������1/# 350#��3��

����������/3# �/2

Page 345: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

� �

�������������� ��30�

� �������������0#��3�0

�����5# 3�

�������5

+

4�����������������

4������������2

4�������������$0

4������ ������# /5

��������� ���������/$

�����/02# /��

4�����������5

4�� �� ���30�

����������/$

������� ������2$# �2�#��302

4�G����3��

4����������2�

4���������������2

4���������2# 3/#����3

��������������32

������� ���������3/3

4����������3/

�����

�!����������������/�

4����������������2

4�������������3$2

4�����������������������3

4������������������������2$

�������d������15

.&�4����21

�������$

�� ����3�2

.��� ���������2

�����3��

��������# /��

������/��

.�������������������2�

.�)����

����3��

.G��������������3

.��� ����G��������25

."�� ��������������351

." �������� �������15

." ������ ���������31�

." �������� ���20

." ���������2

."����������������$3

�"�����$3

."���������������$3

2

������3��

)�������/

)�����:���/�5

)�������������"���

������3��# /01

��"����/01

�������3��

���������������/0/

)������! ��������������25

�������/��

�����������������������/0�

���������������#���#���/�

������������/3

)����������2$

)�����������/0�

)������������������

������2$

)��������$$

�����3�2

��������3�$# /�5

�������������������/�5

Page 346: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

)��������/#���1#��5/

������������$#��52

)����������������������3/

)��������������5/

)�����������������31#��$�

���������������0

����������������0

)������� ��� ���5/

)���������� ��������3# 313

�������������313

A

���������������/00#��/0�

������5�# /00

�������������������3�

����������# �3�

�����������������3�# /00#��/0�

������3�

;������������F������3�$

���������������$3

����3��

�����/2# �/1

=

6������5/

6������������3�$

��������#������"��53

��"��/��

6�"����������21

������������3

�����1# �$

����������

����������������������5

�����������������/�5

��������������/0�

������������35

���������������3/# 20

���������$3

�� ����������3�

�������� �����/0$

��������������2#��315

�����������������21

���������/01

�����������������$3

�����������#��3�

����� ��3�$

��d������3�$

��d�������������������3��

��d����BB����������/0/

��d����BB��"��/03

��d����BB ����/�5

��d����BB����/�5

��d����BB���������/03

��d����BB� �������/03

��������5# 3�$

���������������3�5

����������5

�����AA����������3

���:�.���2��3!������/

��������3�$

���������������������������/00

��������������#������������3�/

B

83..��3

8����3�.��� ����.������,83..-��3

:

*�������������2

������/01

*��������������23

*���"���

*�������������3�1

*������ �������/# ��1

Page 347: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

��

* �����

���� ����/0�

*���������/

;

��������������5

�����������1�

��������2$

+��� ���������

�� ����/��

+� ��3��

�������d����BB�����������/03

+������/03

��"d��K���3�2

+���������������2

���������2

�������������3�3

+���������������������30$# 3�0

+������������������������3�0

+���

������������2$

��������������10

�������10

+������ ���#�V���3

+����!����������������/$

+������ ��3��

+���� ���������������2# 35# 3/�

������������������������32�

+���������3��

���������/$# �0/

C

9���� �����5

9�����������������23

���� ������2$# �2�#��302

9����������������0

9��������������0

9������K���21

��F���!�����������35

��F���!������� ���������33

��F������/

����/��

�������21

��������/�5

���!������������2�

�������� ������ ������35

������������/�5

��������/�5

�����������31# 302

� ��������������31# 302

� ���� �������������������

���AW��3�2

���PP��/0$

���W��3�2

� �������3

��������# 3�$

��������������������������/00

��� ����������3�

�������������������$�

��������� ��������0

�����������2# 31

��������3$

-

7�������������5/

7������������� �����3# 315

�������������/00#��/0�

7���������������������F�����323

7����!�!�����!���������3

7�������2�

�������������50

�������������01

7��� ������2# 3��

7�����������25

7�����������1# ��1#����$

Page 348: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

��������3��# /01

7� �������/# 53

�� ����������� �������25

7� �������������5

������2$

�������3/

7����������50

7�����!��������������� ����5

��������3$

7��� ����5# 5/

��������0# 3/

���d������3�3# 3�0

����3�#��/00

�����������������������/0$

��������/00

���������

D

a������3��

3

=������������������/30

�������3�$

��������3��

�����/00# /3�

��������2$

=��������������������������������1

=����������1�

��������$3

����� ��d������15

=��������� �������3# ��1

�����3�$

�����������,�-��/��

����������������5# 55#���/2

=������� ���5/

=�������������55

������/01

���3�$

=���������� �����������������3$0

������������/01

�� ���32# 50

���������$1

������$1

������������$3

�� ���������� ����BB��3/

�������/00# /3�

���� ��/00# /3�

��G����������������3��

�����3��

�������,�-��/��

������3��# /03

�������,�-��/��

����������,�-��/��

��� ������, -��/��

����,�-��/��

�������� ���30�

������ ������3�

��� �����/01

�������������������35# 3��

��K���3�5

��K��� ������33

��� ����/02

��������������������

� ������������������������25

�������3��

���������AA��/

���������AA��������������3$�

��������������������5

���������� ��������� �����������3�

���������� ������������

���������� �����������

�������� �� �����*������2#��3$�

�������!�� ����F�����5

��������$3

���������������������$0

Page 349: C++ : Programming Made Simple by Conor Sexton (2nd Edition)

���

��������������������$/

����������������$/

������d������15

��������5

�������������$3

��������3

���� ���3

��� ����3

�������:���������2

����������3�$

�������������1/# 3��

����������������3�3

����������������25

����������������3��

��������������25

�����#������������3�

�������1/# �3

����� ���3

������1/

��������52

�����������5

��������������01

������������23

����������������0/

��������� ����������35

������������2

������ ���30

������ �����5

���������/$

�������������������

�������/00# /3�

���� ��/00# /3�

�� ������2

�� ���������������/#��31/

�� ����������������353

��� ������������315

�� ������ �������������3

����� ��������5

�����3��

���������������50

�����/

��������355

� �����������2�

� �����������2�# 15

� ��G�����������

� ��� �����������

�� �d���#��������������3$1

�� �������22

�� ���,-��3$0# 3$1

�� �������313

7

L���� �������3

L������ ����������2�

L�������0$

���������/01

L9�<���

��������3��# /0/

<

I��������������5

I�����������

I�������������3��

I����������������2# 323

���������322

�������32$

E

�����3�$

������3�$

������3�$

������3�$

���������#���/�

�������3��# /01

������3�# /00# /3�