Module 9 A Closer Look at ClassesTable of ContentsCRITICAL SKILL 9.1: Overload contructors
Số trang: 55
Loại file: pdf
Dung lượng: 1.34 MB
Lượt xem: 7
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Module 9 A Closer Look at ClassesTable of ContentsCRITICAL SKILL 9.1: Overload contructors .................................................................................................... 2 CRITICAL SKILL 9.2: Assign objects ................................................................................................................ 3 CRITICAL SKILL 9.3: Pass objects to functions ............................................................................................... 4 CRITICAL SKILL 9.4: Return objects from functions....................................................................................... 9 CRITICAL SKILL 9.5: Create copy contructors .............................................................................................. 13 CRITICAL SKILL 9.6: Use friend functions .................................................................................................... 16 CRITICAL SKILL 9.7: Know the structure and...
Nội dung trích xuất từ tài liệu:
Module 9 A Closer Look at ClassesTable of ContentsCRITICAL SKILL 9.1: Overload contructors Module 9 A Closer Look at ClassesTable of ContentsCRITICAL SKILL 9.1: Overload contructors .................................................................................................... 2CRITICAL SKILL 9.2: Assign objects ................................................................................................................ 3CRITICAL SKILL 9.3: Pass objects to functions ............................................................................................... 4CRITICAL SKILL 9.4: Return objects from functions....................................................................................... 9CRITICAL SKILL 9.5: Create copy contructors .............................................................................................. 13CRITICAL SKILL 9.6: Use friend functions .................................................................................................... 16CRITICAL SKILL 9.7: Know the structure and union..................................................................................... 21CRITICAL SKILL 9.8: Understand this ........................................................................................................... 27CRITICAL SKILL 9.9: Know operator overlaoding fundamentals ................................................................. 28CRITICAL SKILL 9.10: Overlaod operators using member functions ........................................................... 29CRITICAL SKILL 9.11: Overlad operators using nonmember functions ....................................................... 37This module continues the discussion of the class begun in Module 8. It examines a number ofclass-related topics, including overloading constructors, passing objects to functions, and returningobjects. It also describes a special type of constructor, called the copy constructor, which is used when acopy of an object is needed. Next, friend functions are described, followed by structures and unions, andthe ‘this’ keyword. The module concludes with a discussion of operator overloading, one of C++’s mostexciting features. C++ A Beginner’s Guide by Herbert Schildt 1CRITICAL SKILL 9.1: Overloading ConstructorsAlthough they perform a unique service, constructors are not much different from other types offunctions, and they too can be overloaded. To overload a class’ constructor, simply declare the variousforms it will take. For example, the following program defines three constructors:The output is shown here:t.x: 0, t.y: 0t1.x: 5, t1.y: 5t2.x: 9, t2.y: 10This program creates three constructors. The first is a parameterless constructor, which initializes both xand y to zero. This constructor becomes the default constructor, replacing the default constructorsupplied automatically by C++. The second takes one parameter, assigning its value to both x and y. Thethird constructor takes two parameters, initializing x and y individually. C++ A Beginner’s Guide by Herbert Schildt 2Overloaded constructors are beneficial for several reasons. First, they add flexibility to the classes thatyou create, allowing an object to be constructed in a variety of ways. Second, they offer convenience tothe user of your class by allowing an object to be constructed in the most natural way for the given task.Third, by defining both a default constructor and a parameterized constructor, you allow both initializedand uninitialized objects to be created.CRITICAL SKILL 9.2: Assigning ObjectsIf both objects are of the same type (that is, both are objects of the same class), then one object can beassigned to another. It is not sufficient for the two classes to simply be physically similar—their typenames must be the same. By default, when one object is assigned to another, a bitwise copy of the firstobject’s data is assigned to the second. Thus, after the assignment, the two objects will be identical, butseparate. The following program demonstrates object assignment: // C++ A Beginner’s Guide by Herbert Schildt 3This program displays the following output:As the program shows, the assignment of one object to another creates two objects that contain thesame values. The two objects are otherwise still completely separate. Thus, a subsequent modificationof one object’s data has no effect on that of the other. However, you will need to watch for side effects,which may still occur. For example, if an object A contains a pointer to some other object B, then when acopy of A is made, the copy will also contain a field that points to B. Thus, changing B will affect bothobjects. In situations like this, you may need to bypass the default bitwise copy by defining a customassignment operator for the class, as explained later in this module.CRITICAL SKILL 9.3: Passing Objects to Functions C++ A Beginner’s Guide by Herbert Schildt 4An object can be passed to a function in the same way as any other data type. Objects are passed tofunctions using the normal C++ call-by-value parameter-passing convention. This means that a copy ofthe object, not the actual object itself, is passed to the function. Therefore, changes made to the objectinside the function do not affect the object used as the argument to the function. The following programillustrates this point:The output is shown here:Value of a before calling change(): 10 ...
Nội dung trích xuất từ tài liệu:
Module 9 A Closer Look at ClassesTable of ContentsCRITICAL SKILL 9.1: Overload contructors Module 9 A Closer Look at ClassesTable of ContentsCRITICAL SKILL 9.1: Overload contructors .................................................................................................... 2CRITICAL SKILL 9.2: Assign objects ................................................................................................................ 3CRITICAL SKILL 9.3: Pass objects to functions ............................................................................................... 4CRITICAL SKILL 9.4: Return objects from functions....................................................................................... 9CRITICAL SKILL 9.5: Create copy contructors .............................................................................................. 13CRITICAL SKILL 9.6: Use friend functions .................................................................................................... 16CRITICAL SKILL 9.7: Know the structure and union..................................................................................... 21CRITICAL SKILL 9.8: Understand this ........................................................................................................... 27CRITICAL SKILL 9.9: Know operator overlaoding fundamentals ................................................................. 28CRITICAL SKILL 9.10: Overlaod operators using member functions ........................................................... 29CRITICAL SKILL 9.11: Overlad operators using nonmember functions ....................................................... 37This module continues the discussion of the class begun in Module 8. It examines a number ofclass-related topics, including overloading constructors, passing objects to functions, and returningobjects. It also describes a special type of constructor, called the copy constructor, which is used when acopy of an object is needed. Next, friend functions are described, followed by structures and unions, andthe ‘this’ keyword. The module concludes with a discussion of operator overloading, one of C++’s mostexciting features. C++ A Beginner’s Guide by Herbert Schildt 1CRITICAL SKILL 9.1: Overloading ConstructorsAlthough they perform a unique service, constructors are not much different from other types offunctions, and they too can be overloaded. To overload a class’ constructor, simply declare the variousforms it will take. For example, the following program defines three constructors:The output is shown here:t.x: 0, t.y: 0t1.x: 5, t1.y: 5t2.x: 9, t2.y: 10This program creates three constructors. The first is a parameterless constructor, which initializes both xand y to zero. This constructor becomes the default constructor, replacing the default constructorsupplied automatically by C++. The second takes one parameter, assigning its value to both x and y. Thethird constructor takes two parameters, initializing x and y individually. C++ A Beginner’s Guide by Herbert Schildt 2Overloaded constructors are beneficial for several reasons. First, they add flexibility to the classes thatyou create, allowing an object to be constructed in a variety of ways. Second, they offer convenience tothe user of your class by allowing an object to be constructed in the most natural way for the given task.Third, by defining both a default constructor and a parameterized constructor, you allow both initializedand uninitialized objects to be created.CRITICAL SKILL 9.2: Assigning ObjectsIf both objects are of the same type (that is, both are objects of the same class), then one object can beassigned to another. It is not sufficient for the two classes to simply be physically similar—their typenames must be the same. By default, when one object is assigned to another, a bitwise copy of the firstobject’s data is assigned to the second. Thus, after the assignment, the two objects will be identical, butseparate. The following program demonstrates object assignment: // C++ A Beginner’s Guide by Herbert Schildt 3This program displays the following output:As the program shows, the assignment of one object to another creates two objects that contain thesame values. The two objects are otherwise still completely separate. Thus, a subsequent modificationof one object’s data has no effect on that of the other. However, you will need to watch for side effects,which may still occur. For example, if an object A contains a pointer to some other object B, then when acopy of A is made, the copy will also contain a field that points to B. Thus, changing B will affect bothobjects. In situations like this, you may need to bypass the default bitwise copy by defining a customassignment operator for the class, as explained later in this module.CRITICAL SKILL 9.3: Passing Objects to Functions C++ A Beginner’s Guide by Herbert Schildt 4An object can be passed to a function in the same way as any other data type. Objects are passed tofunctions using the normal C++ call-by-value parameter-passing convention. This means that a copy ofthe object, not the actual object itself, is passed to the function. Therefore, changes made to the objectinside the function do not affect the object used as the argument to the function. The following programillustrates this point:The output is shown here:Value of a before calling change(): 10 ...
Tìm kiếm theo từ khóa liên quan:
tài liệu công nghệ thông tin thủ thuật máy tính kinh nghiệm máy tính hướng dẫn học công nghệ thông tin mẹo công nghệ thông tinGợi ý tài liệu liên quan:
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 315 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 305 0 0 -
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 213 0 0 -
Giáo trình Bảo trì hệ thống và cài đặt phần mềm
68 trang 207 0 0 -
Phần III: Xử lý sự cố Màn hình xanh
3 trang 203 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 203 0 0 -
Hướng dẫn cách khắc phục lỗi màn hình xanh trong windows
7 trang 202 0 0 -
Tổng hợp 30 lỗi thương gặp cho những bạn mới sử dụng máy tính
9 trang 202 0 0 -
Sao lưu dữ liệu Gmail sử dụng chế độ Offline
8 trang 201 0 0 -
Giáo Trình tin học căn bản - ĐH Marketing
166 trang 198 0 0