C++
  • Home
  • Học lập trình
    • All
    • Học C++
    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

    Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

    học lập trình c++ thì làm được gì

    Học Lập Trình C++ Thì Làm Được Gì?

    Sự khác nhau giữa struct và class trong C++

    Sự Khác Nhau Giữa Struct Và Class Trong C++

    Sự khác nhau giữa tham chiếu và con trỏ c++

    Sự Khác Nhau Giữa Tham Chiếu Và Con Trỏ Trong C++

    • Học C++
  • Reviews
    Top 7 công cụ tạo website không cần code

    Top 7 Công Cụ Tạo Website Không Cần Code Miễn Phí

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips
No Result
View All Result
  • Home
  • Học lập trình
    • All
    • Học C++
    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

    Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

    học lập trình c++ thì làm được gì

    Học Lập Trình C++ Thì Làm Được Gì?

    Sự khác nhau giữa struct và class trong C++

    Sự Khác Nhau Giữa Struct Và Class Trong C++

    Sự khác nhau giữa tham chiếu và con trỏ c++

    Sự Khác Nhau Giữa Tham Chiếu Và Con Trỏ Trong C++

    • Học C++
  • Reviews
    Top 7 công cụ tạo website không cần code

    Top 7 Công Cụ Tạo Website Không Cần Code Miễn Phí

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips
No Result
View All Result
C++
No Result
View All Result
Home Học lập trình Học C++

Friend class in C++ with examples

admin by admin
July 5, 2023
in Học C++
0 0
0
0
SHARES
0
VIEWS
Share on FacebookShare on Twitter

1. Chức năng Friend có thể kết bạn với nhiều lớp

Nó giống như một hàm friend, nó chỉ là một lớp ở vị trí của hàm. Trong đó, một lớp là bạn của lớp khác hoặc lớp là bạn của

nhiều lớp học mà một lớp có thể truy cập các thành viên riêng của lớp khác,

đây là một ví dụ về hai hạng nhất và thứ hai là bạn bè nơi hạng hai có thể truy cập các thành viên tư nhân hạng nhất,

 

Nhưng có một số điều kiện, nếu hạng nhất là bạn của hạng hai, thì hạng nhất có thể tiếp cận thành viên riêng của hạng hai, nhưng hạng hai không thể tiếp cận thành viên của hạng nhất. Theo một cách nào đó, chúng ta có thể nói rằng tình bạn là một chiều.

Chúng ta hãy coi đây là sự trợ giúp của một chương trình-

Ở đây chương trình trên đã được đưa ra dưới dạng lớp bạn bè trong C ++, vì vậy bạn sẽ có thể hiểu nó một cách dễ dàng.

Trong sơ đồ dưới đây, chúng ta khai báo hai class First và class Second, trong đó chúng ta truy cập thành viên private class hạng nhất sử dụng đối tượng hạng nhất obj1 đến class thứ hai,

Đây là Chương trình,

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

 class First
  {
     int a;
     friend class Second; //second is declaration in private mode of first class
   public:
     void get_num(int x)
       {
          a = x;
       }
  }; // first class terminate

 class Second
  {
     int b;
    public:
      void get_num(int y)
       {
          b = y;
       }

   void get_sum( First obj1) // second class member defination
     {
       int sum;
       sum = obj1.a + b; // accessing first class member using first class object f1
       cout<<"Total: "<<sum;
     }
  };   // second class terminate

int main() // main function start here
 {
   int a,b;
   first obj2;            // first class object declare
   second s;        // second class object declare

   cout<<"Enter two number: ";
   cin>>a>>b;

   obj2.get_num(a);          // first class function call
   s.get_num(b);         // second class function call
   s.get_sum(obj2);        // friend function call

return 0;
}

RA

Enter two number: 3 8
Total: 11

Lời giải thích

Xem sơ đồ trên

một hàm Friend có thể kết bạn với nhiều lớp

Một hàm friend có thể là bạn của nhiều hơn một lớp trong C++. Trong tình huống như vậy, chúng tôi phải chuyển tiếp tuyên bố của lớp có bạn của nó.

Trong đó, cả hai tên lớp đều được khai báo là tham số của hàm friend trong khai báo hàm friend, ví dụ:

friend return-type function_name(first-class,second-class);

Trong khi đối tượng của các lớp đó cũng được khai báo trong định nghĩa của các hàm bạn bè này-

return-type function_name(first-class obj1, second-class ob2)
  {
    ..............
    ..............
  };

Trong cú pháp bên dưới, giống như hàm friend có thể khai báo cả private và public, vì vậy ở đây chúng ta đã khai báo hàm friend ở hạng nhất ở chế độ private và second class ở chế độ public.

class second; // forward declaration
class first
  {
     data member;
     friend return type function_name(first, second); //private mode
   public:
      data member
      member function;
  };

class second
  {
     data member;
     member function;
   public:
     data member;
     member function;
     friend return type function_name(first, second); // public mode
  };

Hãy nhớ trong hai lớp, tên của hàm khai báo friend sẽ giống nhau trong khi khai báo ở bất cứ đâu (chế độ private hoặc public) giống như bên dưới trong đó void friend show_sum(first, second) là hàm friend type,

class second; // forward declaration

class first
 {
     int a;
     void friend show_sum(first, second); // declared in private
   public:
      get_num(int x) { 
                  statement;
                  }
 };

class second
 {
     int b;
   public:
     void get_num(int y) { 
                 statement;
            }
    void friend show_sum(first, second); // declared in public
 };

Theo cú pháp này, chương trình của nó được đưa ra dưới đây-

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

 class second; // forward declaration

 class first
   {
      int a;
      void friend show_sum(first,second);       // friend function declaration in private mode
    public:
      void get_num(int x)
        {
           a = x; 
        }
   };            // first class terminate here

 class second
   {
      int b;
     public:
      void get_num(int y)
        {
           b = y; 
        }
      void friend show_sum(first,second);          //friend declaration in public mode
   };              // second terminate here

void show_sum(first obj1 , second obj2)           // defination of friend function
  {
     int sum;
     sum = obj1.a + obj2.b;         // accessig private member of classes
     cout<<"Total: "<<sum;
  } 

int main()         // main function start here
{
   int a,b;
   clrscr();

   first obj1;
   second obj2;

   cout<<"Enter two number: ";
   cin>>a>>b;

   obj1.get_num(a);           // first class function call
   obj2.get_num(b);           // second class function call
   show_sum(obj1,obj2);        // friend function call

return 0;
}

RA

Enter two number: 5 6
Total: 11

Lời giải thích

Trong định nghĩa bên ngoài (bên ngoài lớp) của hàm FRIEND, toán tử phân giải phạm vi không được sử dụng, trong khi toán tử phân giải phạm vi của một thành viên công khai đơn giản được sử dụng trong định nghĩa bên ngoài.

Previous Post

Mảng với hàm trong C++

Next Post

Bộ ký tự, tên định danh và chú thích trong C++

admin

admin

Next Post

Bộ ký tự, tên định danh và chú thích trong C++

Leave a Reply Cancel reply

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

  • Trending
  • Comments
  • Latest
cách code hình trái tim bằng c++

Cách code hình trái tim giống với nhân vật Thủ Khoa Lý

December 7, 2023
hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

October 3, 2023
Office 2019 full crack

Cách Crack Office 2019 Đơn Giản, Dễ Hiểu Thành Công 100%

September 19, 2023
Top 10 ứng dụng mua hàng Trung Quốc uy tín nhất hiện nay

Top 10 ứng dụng mua hàng Trung Quốc uy tín nhất hiện nay

January 18, 2025

Các lớp lưu trữ trong cpp

0

Câu lệnh if else trong cpp

0

Chức năng của switch trong cpp

0

Mảng đối tượng trong C++

0
Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

October 23, 2023
Top 7 website bán túi xách nữ chính hãng, uy tín nhất

Top 7 website bán túi xách nữ chính hãng, uy tín nhất

October 12, 2023
Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

October 7, 2023
Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

October 5, 2023

Recommended

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

October 23, 2023
Top 7 website bán túi xách nữ chính hãng, uy tín nhất

Top 7 website bán túi xách nữ chính hãng, uy tín nhất

October 12, 2023
Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

October 7, 2023
Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

October 5, 2023
Hướng dẫn học C++

© 2023 Hướng dẫn học C++ - Website thuộc bản quyền của Hướng dẫn học C++.

Liên kết

  • Home
  • Học lập trình
  • Reviews
  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn

Theo dõi chúng tôi

No Result
View All Result
  • Home
  • Học lập trình
    • Học C++
  • Reviews
  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips

© 2023 Hướng dẫn học C++ - Website thuộc bản quyền của Hướng dẫn học C++.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In