- class pointer {
B Tính đa hình giúp ích gì:
Đặc điểm này giúp người lập trình không phải viết những cấu trúc điều khiển rườm rà trong chương trình của mình.
Họ chỉ cần viết 1 thông điệp chung cho tập hợp các đối tượng có chung 1 tính chất nào đó. Những tình huống khác nhau của thông điệp chỉ thực sự đòi hỏi khi chương trình thực hiện tác động lên 1 đối tượng cụ thể.
C Ví dụ
Thông điệp “vẽ hình” được gửi đến đối tượng hình hộp và hình tròn. Hai đối tượng này đều có chung hành vi vẽ hình nên tùy theo thời điểm mà đối tượng nhận thông điệp thì hình tương ứng sẽ được vẽ lên.
0,5 điểm
Câu 21:( 1.5 điểm)
Cho biết kết quả hiển thị ra màn hình của đoạn chương trình sau: Lập bảng để giải thích từng dòng lệnh
#include<iostream.h>; //Báo hiệu cho trình dịch. Đây là một thư viện vào ra cơ bản khai báo.
int main ()
//nội dung của nó luôn được thực hiện đầu tiên khi chương trình bắt đầu
//Trong C++, tất cả các hàm mà sau đó là một cặp ngoặc đơn () thì có nghĩa là nó có thể có hoặc không có tham số
{ //nội dung của hàm main ngay sau phần khai báo chính thức dc bao trong ngoặc nhọn
int value1 = 5, value2 = 15;
//khai kiểu số nguyên cho giá trị 1 gán=5 giá trị 2 gán=15’
int * mypointer;
//Khai báo kiểu số nguyên dấu là phần tử con trỏ.
mypointer = &value1; //gán cho mypointer tới con chỏ value1.
*mypointer = 10; // Gán giá trị của ô nhớ con trỏ mypointer đang trỏ tới bằng 10.
mypointer = &value2; //gán cho mypointer tới con chỏ value2.
*mypointer = 20; // Gán giá trị của ô nhớ con trỏ mypointer đang trỏ tới bằng 10;
cout << "value1==" << value1 << "/ value2==" << value2;
//dòng lệnh này in giá trị 1 và giá trị 2 ra màn hình.
return 0; //hàm kết thúc ctrinh trả về mã đi sau đó.
//Đây là một kết thúc bình thường của một chương trình không có một lỗi nào trong quá trình thực hiện.
}
Câu 22:(1.5 điểm)
Lập bảng để giải thích từng dòng lệnh #include<iostream.h>;
int main () {
int value1 = 5, value2 = 15; int * mypointer;
mypointer = &value1; *mypointer = 10; mypointer = &value2; *mypointer = 20;
cout << "value1==" << value1 << "/ value2==" << value2; return 0;
}
TT Nội dung Điểm
Value1 =10, value2 =20 0.5
Lệnh Giá trị của các biến
int value1 = 5, value2 = 15; Khai báo 2 biến value1 và value2 kiểu int và gán giá trị cho 2 biển. Value1 =5,value2 =15 int * mypointer; khai con trỏ mypointer
kiểu int
mypointer = &value1; Cho con trỏ mypointer trỏ tới địa chỉ của value1
*mypointer = 10; Gán giá trị của ô nhớ con trỏ mypointer đang trỏ tới bằng 10=> value1 =10
mypointer = &value2; Cho con trỏ mypointer
trỏ tới địa chỉ của value2
*mypointer = 20; Gán giá trị của ô nhớ con trỏ mypointer đang trỏ tới bằng 20=> value1 =20
cout << "value1==" << value1 << "/ value2==" << value2;
In ra màn hình value1 =10 / value 2 = 20
Câu 23: (1.5 điểm)
Cho biết kết quả hiển thị ra màn hình của đoạn chương trình sau: Lập bảng để giải thích từng dòng lệnh
#include<iostream.h>; int main ()
{
int value1 = 5, value2 = 15; int *p1, *p2; p1 = &value1; p2 = &value2; *p1 = 10; *p2 = *p1; p1 = p2; *p1 = 20;
cout << "value1==" << value1 << "/ value2==" << value2; return 0;
}
Câu 24: (1.5 điểm)
Cho biết kết quả hiển thị ra màn hình của đoạn chương trình sau: Lập bảng để giải thích từng dòng lệnh
int main () {
int value1 = 5, value2 = 15; int *p1, *p2; p1 = &value1; p2 = &value2; *p1 = 10; *p2 = *p1; p1 = p2; *p1 = 20;
cout << "value1==" << value1 << "/ value2==" << value2; return 0;
}
TT Nội dung Điểm
Value1 =10, value2 =20 0.5 điểm
Lệnh Giá trị của các biến
int value1 = 5, value2 = 15; Khai báo 2 biến value1 và value2 kiểu int và gán giá trị cho 2 biển. Value1 =5,value2 =15 int *p1, *p2; khai con trỏ p1,p2 kiểu
int p1 = &value1;
p2 = &value2;
Cho con trỏ p1 trỏ tới địa chỉ của value1 và con trỏ p2 trỏ tới value2
*p1 = 10; Gán giá trị của ô nhớ
con trỏ p1 đang trỏ tới bằng 10=> value1 =10
*p2 = *p1 Giá trị trỏ bỏi p2 gán
= giá trị trỏ bởi p1
Lúc này value1 = 10, value 2 =10 p1 = p2; Phép gán 2 con trỏ, lúc này p1 cũng trỏ tới value2 *p1 = 20; giá trị trỏ bới p1 sẽ được gán là 20=> value2 =20
cout << "value1==" << value1 << "/ value2==" << value2; return 0;
In tr màn hình value 1= 10/ value2 = 20
Câu 25: (1,5 điểm)
Lập trình hướng đối tượng là gì ? các bước thiết kế chương trình theo hướng đối tượng ?
Câu 26: (1,0 điểm)
Trong lập trình hướng đối tượng, tính thừa kế là gì? Các loại thừa kế? Cho ví dụ
TT Nội dung Điểm
Trong lập trình hướng đối tượng, tính thừa kế là gì? Các loại
thừa kế? Cho ví dụ. 1,0 điểm