Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các đối tượng và lớp cũng như cách sử dụng chúng trong C ++ với sự trợ giúp của các ví dụ.
Trong các bài hướng dẫn trước, chúng ta đã tìm hiểu về hàm và biến. Đôi khi, bạn nên đặt các chức năng và dữ liệu liên quan vào một nơi sao cho hợp lý và dễ làm việc hơn.
Giả sử, chúng ta cần lưu trữ chiều dài, chiều rộng và chiều cao của một căn phòng hình chữ nhật và tính diện tích và thể tích của nó.
Để xử lý tác vụ này, chúng ta có thể tạo ba biến, chẳng hạn, chiều dài, chiều rộng và chiều cao cùng với các hàm calculateArea()
và calculateVolume()
.
Tuy nhiên, trong C ++, thay vì tạo các biến và hàm riêng biệt, chúng ta cũng có thể gói các dữ liệu và hàm liên quan này vào một nơi duy nhất (bằng cách tạo các đối tượng ). Mô hình lập trình này được gọi là lập trình hướng đối tượng.
Nhưng trước khi chúng ta có thể tạo các đối tượng và sử dụng chúng trong C ++, trước tiên chúng ta cần tìm hiểu về các lớp .
Lớp C ++
Một lớp là một bản thiết kế cho đối tượng.
Chúng ta có thể coi lớp học như một bản phác thảo (nguyên mẫu) của một ngôi nhà. Nó chứa tất cả các chi tiết về sàn nhà, cửa ra vào, cửa sổ, vv Dựa trên những mô tả này, chúng tôi xây dựng ngôi nhà. Ngôi nhà là đối tượng.
Tạo một lớp học
Một lớp được định nghĩa trong C ++ bằng cách sử dụng từ khóa class
theo sau là tên của lớp.
Phần thân của lớp được định nghĩa bên trong dấu ngoặc nhọn và được kết thúc bằng dấu chấm phẩy ở cuối.
class className ( // some data // some functions );
Ví dụ,
class Room ( public: double length; double breadth; double height; double calculateArea()( return length * breadth; ) double calculateVolume()( return length * breadth * height; ) );
Ở đây, chúng tôi đã xác định một lớp có tên Room
.
Các biến chiều dài, chiều rộng và chiều cao được khai báo bên trong lớp được gọi là thành viên dữ liệu . Và, các hàm calculateArea()
và calculateVolume()
được gọi là hàm thành viên của một lớp.
Đối tượng C ++
Khi một lớp được định nghĩa, chỉ đặc tả cho đối tượng được định nghĩa; không có bộ nhớ hoặc bộ nhớ được cấp phát.
Để sử dụng dữ liệu và các hàm truy cập được định nghĩa trong lớp, chúng ta cần tạo các đối tượng.
Cú pháp để xác định đối tượng trong C ++
className objectVariableName;
Chúng ta có thể tạo các đối tượng của Room
lớp (được định nghĩa trong ví dụ trên) như sau:
// sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )
Ở đây, hai đối tượng room1 và room2 của Room
lớp được tạo trong sampleFunction()
. Tương tự, các đối tượng room3 và room4 được tạo trong main()
.
Như chúng ta thấy, chúng ta có thể tạo các đối tượng của một lớp trong bất kỳ chức năng nào của chương trình. Chúng ta cũng có thể tạo các đối tượng của một lớp trong chính lớp đó hoặc trong các lớp khác.
Ngoài ra, chúng ta có thể tạo bao nhiêu đối tượng tùy thích từ một lớp duy nhất.
C ++ Truy cập Thành viên Dữ liệu và Chức năng Thành viên
Chúng ta có thể truy cập các thành viên dữ liệu và các hàm thành viên của một lớp bằng cách sử dụng .
toán tử (dấu chấm). Ví dụ,
room2.calculateArea();
Điều này sẽ gọi calculateArea()
hàm bên trong Room
lớp cho đối tượng room2.
Tương tự, các thành viên dữ liệu có thể được truy cập như:
room1.length = 5.5;
Trong trường hợp này, nó khởi tạo biến độ dài của room1 thành 5.5
.
Ví dụ 1: Đối tượng và lớp trong lập trình C ++
// Program to illustrate the working of // objects and class in C++ Programming #include using namespace std; // create a class class Room ( public: double length; double breadth; double height; double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // assign values to data members room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2; // calculate and display the area and volume of the room cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Đầu ra
Diện tích phòng = 1309 Thể tích phòng = 25132,8
Trong chương trình này, chúng ta đã sử dụng Room
lớp và đối tượng room1 của nó để tính diện tích và thể tích của một căn phòng.
Trong main()
, chúng tôi đã gán các giá trị chiều dài, chiều rộng và chiều cao với mã:
room1.length = 42.5; room1.breadth = 30.8; room1.height = 19.2;
Sau đó chúng tôi gọi các hàm calculateArea()
và calculateVolume()
thực hiện các phép tính cần thiết.
Lưu ý việc sử dụng từ khóa public
trong chương trình. Điều này có nghĩa là các thành viên là công khai và có thể được truy cập ở bất kỳ đâu từ chương trình.
Theo nhu cầu của chúng tôi, chúng tôi cũng có thể tạo thành viên riêng bằng cách sử dụng private
từ khóa. Các thành viên riêng của một lớp chỉ có thể được truy cập từ bên trong lớp. Ví dụ,
class Test ( private:
int a; void function1() ( ) public: int b; void function2() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.
Mặt khác, b và function2()
có thể truy cập từ mọi nơi trong chương trình.
Để tìm hiểu thêm về các từ khóa công khai và riêng tư, vui lòng truy cập hướng dẫn Công cụ sửa đổi quyền truy cập lớp C ++ của chúng tôi.
Ví dụ 2: Sử dụng public và private trong C ++ Class
// Program to illustrate the working of // public and private in C++ Class #include using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(double len, double brth, double hgt) ( length = len; breadth = brth; height = hgt; ) double calculateArea() ( return length * breadth; ) double calculateVolume() ( return length * breadth * height; ) ); int main() ( // create object of Room class Room room1; // pass the values of private variables as arguments room1.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )
Đầu ra
Diện tích phòng = 1309 Thể tích phòng = 25132,8
Ví dụ trên gần giống với ví dụ đầu tiên, ngoại trừ việc các biến lớp bây giờ là private.
Vì các biến bây giờ là riêng tư, chúng tôi không thể truy cập trực tiếp từ chúng main()
. Do đó, sử dụng mã sau sẽ không hợp lệ:
// invalid code obj.length = 42.5; obj.breadth = 30.8; obj.height = 19.2;
Thay vào đó, chúng tôi sử dụng các chức năng công cộng getData()
để khởi tạo các biến tư nhân thông qua các thông số chức năng double len
, double brth
và double hgt
.
Để tìm hiểu thêm về các đối tượng và lớp học, hãy truy cập các chủ đề sau:
- Trình tạo C ++
- Làm thế nào để truyền và trả về một đối tượng từ một hàm?