Hàm và hàm bạn trong C++
Việc xây dựng các hàm làm cho viết chương trình khá thuận lợi, rành mạch. Tuy nhiên, hàm có nhược điểm là không thể truy nhập tới thuộc tính của các đối. Do đó, nhiều trường hợp, ta phải đưa vào khái niệm hàm bạn.
1. Tính chất của hàm
+ Phạm vi của hàm là toàn bộ chương trình, vì vậy hàm có thể được gọi tới bất kỳ chỗ nào.
+ Đối của hàm có thể là các đối tượng, tuy nhiên có một hạn chế là trong thân hàm không cho phép truy nhập tới thuộc tính của các đối này.
+ Phạm vi sử dụng của các phương thức là toàn bộ chương trình, do vậy trong thân hàm có thể gọi tới các phương thức.
2. Hàm bạn
* Cách viết một hàm bạn: Để một hàm trở thành hàm bạn, có hai cách viết:
Cách 1: Đặt từ khóa friend trước các hàm được khai báo trong lớp, sau đó xây dựng hàm bên ngoài như bình thường.
class A
{
private:
//Cac thuoc tinh
public:
friend void h1(...);
friend int h2(...);
....
};
void h1(...)
{
...
}
int h2(...)
{
...
}
Cách 2: Dùng từ khóa friend để xây dựng hàm trong định nghĩa lớp.
class A
{
private:
//Cac thuoc tinh
public:
friend void h1(...)
{
...
}
friend int h2(...)
{
...
}
....
};
* 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à khác nhau duy nhất giữa hàm bạn và hàm thông thường.
+ Hàm bạn không phải là phương thức của một lớp, 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.