Chi tiết bài học Lớp và đối tượng trong C++

Lớp và đối tượng trong C++

Trong bài này, bạn sẽ được học cách thao tác với đối tượng người tiêu dùng và lớp trong lập trình C + + .

C++ là một ngôn ngữ lập trình đa mô hình (multi-paradigm). Nghĩa là nó có thể hỗ trợ nhiều phong cách lập trình khác nhau.

Một trong những chiêu thức rất phổ cập để xử lý một yếu tố lập trình đó là tạo những đối tượng người dùng ( object ), hay còn được biết tới là lập trình hướng đối tượng người tiêu dùng ( object-oriented ) .
C + + tương hỗ lập trình hướng đối tượng người tiêu dùng mà trong đó bạn hoàn toàn có thể chia nhỏ những yếu tố phức tạp thành những bài toán nhỏ hơn dựa vào việc tạo ra những đối tượng người tiêu dùng .
Đối tượng chỉ đơn thuần là một tập hợp của tài liệu cùng với những hàm tương tác với tập dữ liệu đó .

Lớp trong C++

Trước khi bạn tạo một đối tượng người tiêu dùng trong C + +, bạn cần định nghĩa một lớp ( class ) .
Một lớp là một bản thiết kế cho đối tượng người dùng .
Chúng ta hoàn toàn có thể xem lớp là một bản vẽ prototype của một ngôi nhà. Nó chứa hàng loạt thông tin về sàn, cửa chính, hành lang cửa số … Dựa trên những diễn đạt đó, tất cả chúng ta hoàn toàn có thể thiết kế xây dựng nên ngôi nhà. Ngôi nhà chính là một đối tượng người tiêu dùng .
Và rất nhiều ngôi nhà khác hoàn toàn có thể được dựng lên theo cùng diễn đạt của bản vẽ như vậy, cũng như tất cả chúng ta hoàn toàn có thể tạo rất nhiều đối tượng người dùng từ một lớp .

Cách định nghĩa lớp trong C++?

Một lớp được định nghĩa trong C + + sử dụng từ khóa class đi kèm với tên lớp .
Thân của lớp được định nghĩa bên trong hai dấu ngoặc nhọn và được kết thúc bởi dấu chấm phẩy ở cuối .

class tên_lớp
   {
   // dữ liệu
   // hàm
   };

Ví dụ: lớp trong C++

class Test
{
    private:
        int data1;
        float data2;  

    public:  
        void function1()
        {   data1 = 2;  } 

        float function2()
        { 
            data2 = 3.5;
            return data2;
        }
};

Ở đây tất cả chúng ta định nghĩa một lớp tên là Test .
Lớp này có hai tài liệu thành viên : data1 và data2 và hai hàm thành viên là function1 ( ) và function2 ( ) .

Từ khóa: private và public

Bạn hoàn toàn có thể thấy có hai từ khóa : private và public trong ví dụ trên .
Từ khóa private khiến tài liệu và hàm trở thành tài liệu và hàm riêng tư. Dữ liệu và hàm riêng tư chỉ hoàn toàn có thể được truy xuất từ bên trong lớp .
Từ khóa public khiến tài liệu và hàm trở thành tài liệu và hàm mở. Dữ liệu và hàm mở hoàn toàn có thể được truy xuất từ bên ngoài lớp .
Ở đây, data1 và data2 là những thành viên riêng tư trong khi function1 ( ) và function2 ( ) là những thành viên mở .
Nếu bạn cố thử truy xuất tài liệu riêng tư từ bên ngoài lớp, trình biên dịch sẽ báo lỗi. Đặc tính này của OOP được gọi là che giấu tài liệu ( data hiding ) .

Đối tượng trong C++

Khi lớp được định nghĩa, chỉ có đặc tả của đối tượng được định nghĩa, không có vùng nhớ hay ô chứa nào được cấp phát.

Để sử dụng tài liệu và truy vấn vào những hàm định nghĩa trong lớp, bạn cần tạo đối tượng người tiêu dùng .

Cú pháp định nghĩa đối tượng trong C++

tên_lớp tên_biến_đối_tượng;

Bạn hoàn toàn có thể tạo đối tượng người tiêu dùng của lớp Test ( định nghĩa ở ví dụ trên ) như sau :

class Test
{
    private:
        int data1;
        float data2;  

    public:  
        void function1()
        {   data1 = 2;  } 

        float function2()
        { 
            data2 = 3.5;
            return data2;
        }
   };

int main()
{
    Test o1, o2;
}

Ở đây hai đối tượng người tiêu dùng o1 và o2 của lớp Test được tạo .
Trong lớp Test trên, data1 và data2 là những tài liệu thành viên còn function1 ( ) và function2 ( ) là những hàm thành viên .

Cách truy xuất dữ liệu và hàm thành viên trong C++?

Bạn hoàn toàn có thể truy xuất tài liệu và hàm thành viên bằng cách sử dụng toán tử chấm (. ). Ví dụ :

o2.function1();

Câu lệnh này sẽ gọi hàm function1 ( ) trong lớp Test của đối tượng người tiêu dùng o2 .
Tương tự, tài liệu thành viên hoàn toàn có thể được truy xuất :

o1.data2 = 5.5;

Cầu quan tâm rằng, những thành viên ( tài liệu và hàm ) riêng tư chỉ hoàn toàn có thể được truy xuất trong nội bộ lớp
Vì vậy bạn hoàn toàn có thể sử dụng o2. function1 ( ) ; từ bất kể hàm hoặc lớp nào trong ví dụ trên. Tuy nhiên, câu lệnh o1.data = 5.5 ; luôn luôn nên được gọi bên trong lớp Test .

Ví dụ: Đối tượng và lớp trong lập trình C++

// Ví dụ thể hiện cách hoạt động của đối tượng và lớp trong lập trình C++
#include 
using namespace std;

class Test
{
    private:
        int data1;
        float data2;

    public:
       
       void insertIntegerData(int d)
       {
          data1 = d;
          cout << "Number: " << data1;
        }

       float insertFloatData()
       {
           cout << "\nEnter data: ";
           cin >> data2;
           return data2;
        }
};

 int main()
 {
      Test o1, o2;
      float secondDataOfObject2;

      o1.insertIntegerData(12);
      secondDataOfObject2 = o2.insertFloatData();

      cout << "You entered " << secondDataOfObject2;
      return 0;
 }

Đầu ra

Number : 12
Enter data : 23.3

You entered 23.3

Trong chương trình này, hai tài liệu thành viên data1 và data2 cùng với hai hàm thành viên là insertIntegerData ( ) và insertFloatData ( ) được định nghĩa trong lớp Test .
Hai đối tượng người dùng o1 và o2 của cùng lớp được được nghĩa .

Hàm insertIntegerData() được gọi từ đối tượng o1 bằng cách:

o1.insertIntegerData(12);

Câu lệnh này đặt giá trị data1 của đối tượng người dùng o1 là 12 .
Sau đó hàm insertFloatData ( ) của đối tượng người tiêu dùng o2 được gọi và giá trị trả về từ hàm đó được lưu trong biến seconDataOfObject2 bằng cách :

secondDataOfObject2 = o2.insertFloatData();

Trong chương trình này, data2 của o1 và data1 của o2 không được sử dụng và chứa giá trị rác .