C++ Nâng Cao. Hàm Bạn Của Một Lớp

Chào mừng các bạn đến với chủ đề: Học lập trình c++ nâng cao.

Bài hôm nay chúng ta sẽ cùng tìm hiểu về Hàm Bạn trong lập trình c++

Một hàm có thể được coi là bạn của một lớp mà không phải là phương thức của lớp đó.

Bằng cách sử dụng từ khóa friend. Thì một function sẽ trở thành bạn của một lớp.

Ví dụ như sau:

class DataDummy
{
 protected:
 int a;
 int b;
 int c;
public:
 int sum() {return a + b + c;}
 friend int mul(DataDummy& data);
};

int mul(DataDummy& data)
{
 return data.a*data.b*data.c;
}

 

Từ ví dụ trên chúng ta sẽ thấy những đặc điểm sau của một hàm friend.

+ Nó không phải là phương thức của lớp , nó chỉ là bạn thôi.

+ Nó có thể truy nhập trực tiếp vào các trường của biến thông qua 1 đối tượng lớp.

+ Và nó có thể là bạn của nhiều lớp như ví dụ sau đây.

#include <iostream>;
#include <conio.h>;
using namespace std;

class DataDummy;
class DataDummy2;

class DataDummy
{
private:
 int a;
 int b;
 int c;
public:
 int sum() {return a + b + c;}
 friend int mul(DataDummy& data, DataDummy2& data2);
};

class DataDummy2
{
private:
 int x;
public:
 friend int mul(DataDummy& data, DataDummy2& data2);
};

int mul(DataDummy& data, DataDummy2& data2)
{
 return (data.a*data.b*data.c) *(data2.x);
}

Hàm bạn ít khi được sử dụng trong các dự án lập trình.
Nó là một kỹ thuật đặc biệt, nên thường sử dụng trong những trường hợp đặc biệt.
Tuy nhiên có thể nói đó là một kỹ thuật cần ghi nhớ để sử dụng lúc cần.

Pass Pham

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.