Khai Báo Và Sử Dụng Con Trỏ đối Tượng Trong C++ - Góc Học IT
Có thể bạn quan tâm
1. Khai báo con trỏ đối tượng
Con trỏ đối tượng (pointer to object) dùng để chứa địa chỉ của biến đối tượng, được khai báo theo cú pháp như sau:Tên_lớp* tên_biến_con_trỏ = new <hàm_khởi_tạo_của_lớp>;
Để truy xuất các thành phần của lớp từ con trỏ đối tượng trong C++, ta dùng toán tử “->” như sau:Tên_con_trỏ -> Tên_thuộc_tính; Tên_con_trỏ -> Tên_hàm(giá_trị_các_khai_báo_tham_số);
Ví dụ:
#include <iostream> using namespace std; class Circle{ private: float r; public: //Hàm khởi tạo mặc định Circle(){ this->r = 1.0; } //Hàm khởi tạo có tham số Circle(float r){ this->r = r; } void setRadius(float r){ this->r = r; } float getRadius(){ return r; } float calculateArea(){ return 3.14 * r * r; } }; void main() { Circle* c1 = new Circle();//sử dụng hàm khởi tạo mặc định Circle* c2 = new Circle(3.5);//sử dụng hàm khởi tạo có tham số c1->setRadius(99); cout<<"Area of Circle c1 = "<<c1->calculateArea(); cout<<"\nArea of Circle c2 = "<<c2->calculateArea(); system("pause"); }Kết quả
Area of Circle c1 = 30775.1 Area of Circle c2 = 38.4652. Con trỏ đối tượng và mảng đối tượng
Mảng đối tượng
Chúng ta xem lớp như là một kiểu dữ liệu mới. Chúng ta cũng có thể tạo ra một mảng gồm các phần tử có kiểu là lớp đó.#include <iostream> using namespace std; class Circle{ private: float r; public: //Hàm khởi tạo mặc định Circle(){ this->r = 1.0; } //Hàm khởi tạo có tham số Circle(float r){ this->r = r; } void setRadius(float r){ this->r = r; } float getRadius(){ return r; } float calculateArea(){ return 3.14 * r * r; } }; void main() { Circle arr[5];//Khai báo mảng các đối tượng float r=0; for(int i=0;i<5;i++){ cout<<"Input radius of Circle "<<i<<": "; cin>>r; arr[i].setRadius(r); cout<<"Area of Circle "<<i<<" = "<<arr[i].calculateArea()<<endl; } system("pause"); }
Kết quả
Input radius of Circle 0: 2.5 Area of Circle 0 = 19.625 Input radius of Circle 1: 9.8 Area of Circle 1 = 301.566 Input radius of Circle 2: 99 Area of Circle 2 = 30775.1 Input radius of Circle 3: 10.2 Area of Circle 3 = 326.686 Input radius of Circle 4: 5.8 Area of Circle 4 = 105.63Dùng con trỏ đối tượng để lưu mảng đối tượng
Nếu con trỏ đối tượng trong C++ chứa địa chỉ phần tử đầu tiên của mảng đối tượng, có thể dùng con trỏ đối tượng để lưu mảng đối tượng.#include <iostream> using namespace std; class Circle{ private: float r; public: //Hàm khởi tạo mặc định Circle(){ this->r = 1.0; } //Hàm khởi tạo có tham số Circle(float r){ this->r = r; } void setRadius(float r){ this->r = r; } float getRadius(){ return r; } float calculateArea(){ return 3.14 * r * r; } }; void main() { Circle arr[5];//Khai báo mảng các đối tượng float r=0; Circle* pc = new Circle; //Khai báo và sử dụng đối tượng kiểu con trỏ pc = arr; //Con trỏ pc tham chiếu đến mảng arr for(int i=0;i<5;i++){ cout<<"Input radius of Circle "<<i<<": "; cin>>r; (pc+i)->setRadius(r); cout<<"Area of Circle "<<i<<" = "<<(pc+i)->calculateArea()<<endl; } system("pause"); }
Kết quả
Input radius of Circle 0: 9.9 Area of Circle 0 = 307.751 Input radius of Circle 1: 5.0 Area of Circle 1 = 78.5 Input radius of Circle 2: 2.1 Area of Circle 2 = 13.8474 Input radius of Circle 3: 5.7 Area of Circle 3 = 102.019 Input radius of Circle 4: 1.1 Area of Circle 4 = 3.7994Các bạn có thể xem lại bài Sự tương quan giữa con trỏ và mảng trong C++ để nắm được tại sao có thể sử dụng con trỏ để lưu mảng.
- Toán tử logic, toán tử trên bit và toán tử gán trong C++
- Namespace trong PHP dùng để làm gì?
- Một chương trình Python được thực thi như thế nào?
- Cài đặt Dev-C++ để lập trình C++
- Kỹ thuật lập trình với mảng cấu trúc và truyền cấu trúc cho hàm
Từ khóa » Khai Báo Mảng Con Trỏ
-
Con Trỏ Mảng Và Mảng Các Con Trỏ — Modern C++ - STDIO
-
Mảng Các Con Trỏ Trong C++
-
Con Trỏ Mảng Trong C++
-
Mảng Con Trỏ Trong C | 64 Bài Học Lập Trình C Hay Nhất
-
8.2 Con Trỏ Và Mảng Một Chiều - Khóa Học C++
-
Mảng Các Con Trỏ Trong C - Hoclaptrinh
-
Sự Tương Quan Giữa Con Trỏ Và Mảng Trong C++ - Góc Học IT
-
Bài 64. Mối Quan Hệ Giữa Con Trỏ Và Mảng - Lập Trình Không Khó
-
[PDF] Bài 10: Con Trỏ Và Mảng động - VNU-UET
-
Con Trỏ Và Mảng Trong C++ (Pointers And Arrays) | How Kteam
-
[PDF] Bài 6a - MẢNG VÀ CON TRỎ - FIT@MTA
-
Tự Học C/C++ | Con Trỏ Tới Con Trỏ Và Mảng đa Chiều động - Cafedev
-
Con Trỏ Thao Tác Với Mảng Một Chiều Trong C - Lập Trình Từ Đầu
-
Con Trỏ Và Cấp Phát động Trong C++ - TMA Solutions