tailieunhanh - Ngôn ngữ lập trình c&c++ ( Phạm Hồng Thái) P31
Chương 8. Hàm bạn, định nghĩa phép toán cho lớp Hàm bạn Định nghĩa phép toán cho lớp I. HÀM BẠN (FRIEND FUNCTION) 1. Hàm bạn Để một hàm trở thành bạn của một lớp, có 2 cách viết: Cách 1: Dùng từ khóa friend để khai báo hàm trong lớp và xây dựng hàm bên ngoài như các hàm thông thường (không dùng từ khóa friend). Mẫu viết như sau: | Chương 8. Hàm bạn định nghĩa phép toán cho lớp CHƯƠNG 8 HÀM BẠN ĐỊNH NGHĨA PHÉP TOÁN CHO LỚP Hàm bạn Định nghĩa phép toán cho lớp I. HÀM BẠN FRIEND FUNCTION 1. Hàm bạn Để một hàm trở thành bạn của một lớp có 2 cách viết Cách 1 Dùng từ khóa friend để khai báo hàm trong lớp và xây dựng hàm bên ngoài như các hàm thông thường không dùng từ khóa friend . Mẫu viết như sau class A private Khai báo các thuộc tính public . Khai báo các hàm bạn của lớp A friend void f1 . friend double f2 . friend A f3 . . Xây dựng các hàm f1 f2 f3 void f1 . . double f2 . 258 Chương 8. Hàm bạn định nghĩa phép toán cho lớp A f3 . . Cách 2 Dùng từ khóa friend để xây dựng hàm trong định nghĩa lớp. Mẫu viết như sau class A private Khai báo các thuộc tính public Xây dựng các hàm bạn của lớp A void f1 . . double f2 . . Af3 . . . 2. Tính chất của hàm bạn Trong thân hàm bạn của một lớp có thể truy nhập tới các thuộc tính của các đối tượng thuộc lớp này. Đây là sự khác nhau duy nhất giữa hàm bạn và hàm thông thường. Chú ý rằng hàm bạn không phải là phương thức của lớp. Phương thức có một 259 Chương 8. Hàm bạn định nghĩa phép toán cho lớp đối ẩn ứng với con trỏ this và lời gọi của phương thức phải gắn với một đối tượng nào đó địa chỉ đối tượng này được truyền cho con trỏ this . Lời gọi của hàm bạn giống như lời gọi của hàm thông thường. Ví dụ sau sẽ so sánh phương thức hàm bạn và hàm thông thường. Xét lớp SP số phức hãy so sánh 3 phương án để thực hiện việc cộng 2 số phức Phương án 1 Dùng phương thức class SP private double a phần thực double b Phần ảo public SP cong SP u2 SP u this a this b return u Cách dùng SP u u1 u2 u u2 Phương án 2 Dùng hàm bạn class SP private double a Phần thực double b Phần ảo public friend SP cong SP u1 SP u2 .
đang nạp các trang xem trước