Lập trình Oop - Tái định nghĩa
- ページ数
- 24
- 形式
- サイズ
- 396 KB
- 言語
- VI · Tiếng Việt
- 閲覧数
- 1,230
- コメント
- 0
- Lượt tải
- 0
プレビューを生成中...
- ドキュメント名
- Lập trình Oop - Tái định nghĩa
- 目次
- このドキュメントに明確な目次はありません。
- ページ数
- 24 ページ
- アップロード者
- ThiNganHang
詳細な要約を生成中です。数分後にもう一度確認してください。
説明
Trích nội dung tài liệu
Chương 8. Tái định nghĩa Chương này thảo luận về tái định nghĩa hàm và toán tử trong C++. Thuật ngữ tái định nghĩa (overloading) nghĩa là ‘cung cấp nhiều định nghĩa’. Tái định nghĩa hàm liên quan đến việc định nghĩa các hàm riêng biệt chia sẻ cùng tên, mỗi hàm có một dấu hiệu duy nhất. Tái định nghĩa hàm thích hợp cho: • Định nghĩa các hàm về bản chất là làm cùng công việc nhưng thao tác trên các kiểu dữ liệu khác nhau. • Cung cấp các giao diện tới cùng hàm. Tái định nghĩa hàm (function overloading) là một tiện lợi trong lập trình. Giống như các hàm, các toán tử nhận các toán hạng (các đối số) và trả về một giá trị. Phần lớn các toán tử C++ có sẵn đã được tái định nghĩa rồi. Ví dụ, toán tử + có thể được sử dụng để cộng hai số nguyên, hai số thực, hoặc hai địa chỉ. Vì thế, nó có nhiều định nghĩa khác nhau. Các định nghĩa xây dựng sẵn cho các toán tử được giới hạn trên những kiểu có sẵn. Các định nghĩa thêm vào có thể được cung cấp bởi các lập trình viên sao cho chúng cũng có thể thao tác trên các kiểu người dùng định nghĩa. Mỗi định nghĩa thêm vào được cài đặt bởi một hàm. Tái định nghĩa các toán tử sẽ được minh họa bằng cách sử dụng một số lớp đơn giản. Chúng ta sẽ thảo luận các qui luật chuyển kiểu có thể được sử dụng như thế nào để rút gọn nhu cầu cho nhiều tái định nghĩa của cùng toán tử. Chúng ta sẽ trình bày các ví dụ của tái định nghĩa một số toán tử phổ biến gồm << và >> cho xuất nhập, [] và () cho các lớp chứa, và các toán tử con trỏ. Chúng ta cũng sẽ thảo luận việc khởi tạo và gán tự động, tầm quan trọng của việc cài đặt chính xác chúng trong các lớp sử dụng các thành viên dữ liệu được cấp phát động. Không giống như các hàm và các toán tử, các lớp không thể được tái định nghĩa; mỗi lớp phải có một tên duy nhất. Tuy nhiên, như chúng ta sẽ thấy trong chương 8, các lớp có thể được sửa đổi và mở rộng thông qua khả năng thừa kế (inheritance). Chương 8: Tái định nghĩa 122 8.1. Tái định nghĩa hàm Xem xét một hàm, GetTime, trả về thời gian hiện tại của ngày theo các tham số của nó, và giả sử rằng cần có hai biến thể của hàm này: một trả về thời gian theo giây tính từ nửa đêm, và một trả về thời gian theo giờ, phút, giây. Rõ ràng các hàm này phục vụ cùng mục đích nên không có lý do gì lại để cho chúng có những cái tên khác nhau. C++ cho phép các hàm được tái định nghĩa, nghĩa là cùng hàm có thể có hơn một định nghĩa: long GetTime (void); // số giây tính từ nửa đêm void GetTime (int &hours, int &minutes,int &seconds); Khi hàm GetTime được gọi, trình biên dịch so sánh số lượng và kiểu các đối số trong lời gọi với các định nghĩa của hàm GetTime và chọn một cái khớp với lời gọi. Ví dụ: int h, m, s; long t = GetTime(); // khớp với GetTime(void) GetTime(h, m,s); //khớp với GetTime(int&, int&, int&); Để tránh nhầm lẫn thì mỗi định nghĩa của một hàm được tái định nghĩa phải có một dấu hiệu duy nhất. Các hàm thành viên của một lớp cũng có thể được tái định nghĩa: class Time { //... long GetTime (void); // số giây tính từ nửa đêm void GetTime (int &hours, int &minutes, int &seconds); }; Tái định nghĩa hàm giúp ta thu được nhiều phiên bản đa dạng của hàm mà không thể có được bằng cách sử dụng đơn độc các đối số mặc định. Các hàm được tái định nghĩa cũng có thể có các đối số mặc định: void Error (int errCode, char *errMsg = ""); void Error (char *errMsg); 8.2. Tái định nghĩa toán tử C++ cho phép lập trình viên định nghĩa các ý nghĩa thêm vào cho các toán tử xác định trước của nó bằng cách tái định nghĩa chúng. Ví dụ, chúng ta có thể tái định nghĩa các toán tử + và – để cộng và trừ các đối tượng Point: class Point { public: Point (int x, int y) {Point::x = x; Point::y = y;} Chương 8: Tái định nghĩa 123 Point operator+ (Point&p) {return Point(x + p.x,y+ p.y);} Point operator- (Point &p) {return Point(x - p.x,y - p.y);} private: int x, y; }; Sau định nghĩa này thì + và – có thể được sử dụng để cộng và trừ các điểm giống như là chúng được sử dụng để cộng và trừ các số: Point p1(10,20), p2(10,20); Point p3= p1 + p2; Point p4= p1 - p2; Việc tái
よくある質問
このドキュメントは無料ですか?
はい。「Lập trình Oop - Tái định nghĩa」は無料です。ログインして「ダウンロード」をクリックするだけで、元のファイルを取得できます。
このドキュメントは何ページありますか?
このドキュメントは 24 ページあります。ダウンロードする前にオンラインでプレビューできます。
ダウンロードする前にプレビューできますか?
はい。このページにあるオンラインリーダーでドキュメントをプレビューし、その後ダウンロードするかどうかを決めることができます。
Lập trình Oop - Tái định nghĩa
プレビューを生成中...
Trích nội dung tài liệu
Chương 8. Tái định nghĩa Chương này thảo luận về tái định nghĩa hàm và toán tử trong C++. Thuật ngữ tái định nghĩa (overloading) nghĩa là ‘cung cấp nhiều định nghĩa’. Tái định nghĩa hàm liên quan đến việc định nghĩa các hàm riêng biệt chia sẻ cùng tên, mỗi hàm có một dấu hiệu duy nhất. Tái định nghĩa hàm thích hợp cho: • Định nghĩa các hàm về bản chất là làm cùng công việc nhưng thao tác trên các kiểu dữ liệu khác nhau. • Cung cấp các giao diện tới cùng hàm. Tái định nghĩa hàm (function overloading) là một tiện lợi trong lập trình. Giống như các hàm, các toán tử nhận các toán hạng (các đối số) và trả về một giá trị. Phần lớn các toán tử C++ có sẵn đã được tái định nghĩa rồi. Ví dụ, toán tử + có thể được sử dụng để cộng hai số nguyên, hai số thực, hoặc hai địa chỉ. Vì thế, nó có nhiều định nghĩa khác nhau. Các định nghĩa xây dựng sẵn cho các toán tử được giới hạn trên những kiểu có sẵn. Các định nghĩa thêm vào có thể được cung cấp bởi các lập trình viên sao cho chúng cũng có thể thao tác trên các kiểu người dùng định nghĩa. Mỗi định nghĩa thêm vào được cài đặt bởi một hàm. Tái định nghĩa các toán tử sẽ được minh họa bằng cách sử dụng một số lớp đơn giản. Chúng ta sẽ thảo luận các qui luật chuyển kiểu có thể được sử dụng như thế nào để rút gọn nhu cầu cho nhiều tái định nghĩa của cùng toán tử. Chúng ta sẽ trình bày các ví dụ của tái định nghĩa một số toán tử phổ biến gồm << và >> cho xuất nhập, [] và () cho các lớp chứa, và các toán tử con trỏ. Chúng ta cũng sẽ thảo luận việc khởi tạo và gán tự động, tầm quan trọng của việc cài đặt chính xác chúng trong các lớp sử dụng các thành viên dữ liệu được cấp phát động. Không giống như các hàm và các toán tử, các lớp không thể được tái định nghĩa; mỗi lớp phải có một tên duy nhất. Tuy nhiên, như chúng ta sẽ thấy trong chương 8, các lớp có thể được sửa đổi và mở rộng thông qua khả năng thừa kế (inheritance). Chương 8: Tái định nghĩa 122 8.1. Tái định nghĩa hàm Xem xét một hàm, GetTime, trả về thời gian hiện tại của ngày theo các tham số của nó, và giả sử rằng cần có hai biến thể của hàm này: một trả về thời gian theo giây tính từ nửa đêm, và một trả về thời gian theo giờ, phút, giây. Rõ ràng các hàm này phục vụ cùng mục đích nên không có lý do gì lại để cho chúng có những cái tên khác nhau. C++ cho phép các hàm được tái định nghĩa, nghĩa là cùng hàm có thể có hơn một định nghĩa: long GetTime (void); // số giây tính từ nửa đêm void GetTime (int &hours, int &minutes,int &seconds); Khi hàm GetTime được gọi, trình biên dịch so sánh số lượng và kiểu các đối số trong lời gọi với các định nghĩa của hàm GetTime và chọn một cái khớp với lời gọi. Ví dụ: int h, m, s; long t = GetTime(); // khớp với GetTime(void) GetTime(h, m,s); //khớp với GetTime(int&, int&, int&); Để tránh nhầm lẫn thì mỗi định nghĩa của một hàm được tái định nghĩa phải có một dấu hiệu duy nhất. Các hàm thành viên của một lớp cũng có thể được tái định nghĩa: class Time { //... long GetTime (void); // số giây tính từ nửa đêm void GetTime (int &hours, int &minutes, int &seconds); }; Tái định nghĩa hàm giúp ta thu được nhiều phiên bản đa dạng của hàm mà không thể có được bằng cách sử dụng đơn độc các đối số mặc định. Các hàm được tái định nghĩa cũng có thể có các đối số mặc định: void Error (int errCode, char *errMsg = ""); void Error (char *errMsg); 8.2. Tái định nghĩa toán tử C++ cho phép lập trình viên định nghĩa các ý nghĩa thêm vào cho các toán tử xác định trước của nó bằng cách tái định nghĩa chúng. Ví dụ, chúng ta có thể tái định nghĩa các toán tử + và – để cộng và trừ các đối tượng Point: class Point { public: Point (int x, int y) {Point::x = x; Point::y = y;} Chương 8: Tái định nghĩa 123 Point operator+ (Point&p) {return Point(x + p.x,y+ p.y);} Point operator- (Point &p) {return Point(x - p.x,y - p.y);} private: int x, y; }; Sau định nghĩa này thì + và – có thể được sử dụng để cộng và trừ các điểm giống như là chúng được sử dụng để cộng và trừ các số: Point p1(10,20), p2(10,20); Point p3= p1 + p2; Point p4= p1 - p2; Việc tái
- ドキュメント名
- Lập trình Oop - Tái định nghĩa
- 目次
- このドキュメントに明確な目次はありません。
- ページ数
- 24 ページ
- アップロード者
- ThiNganHang
詳細な要約を生成中です。数分後にもう一度確認してください。
コメント (0)
まだコメントはありません。最初のコメントを書きましょう!
Ngân hàng đề thi môn: Hệ thống thông tin quản lý
Đề thi môn Cơ sở dữ liệu (kèm Đáp án) - Đại học Sư phạm kỹ thuật
Đề thi và đáp án môn Hệ thống thông tin kế toán
Đề thi và đáp án môn Cấu trúc dữ liệu giải thuật
Đáp án đề thi môn Mạng máy tính - ĐH Công nghệ thông tin (CNTT)
Tiểu luận - Kinh tế phát triển - Phân tích nhận định "Việt Nam đã kiên định chọn hướng phát triển lấy con người làm trọng tâm ..."
Đề cương - Luật vận tải
600 Câu trắc nghiệm Tư tưởng Hồ Chí Minh
Tài liệu ôn tập Nguyên lý kế toán
Bài tập Xác suất thống kê đại học - có lời giải

コメント (0)
まだコメントはありません。最初のコメントを書きましょう!