225 câu trắc nghiệm Lập trình hướng đối tượng có đáp án - Phần 4
20 câu hỏi
Hàm huỷ trong ngôn ngữ C++ có cú pháp:
~Tên_lớp{ //nội dung}
Destructor Tên_hàm {//nôi dung}
Tên_lớp{//nội dung}
Done {//nội dung}
Cho đoạn chương trình sau:
class A{
private:
int x,y;
public:
A(int x=0,int y=0);
void xuat();
~A();
};
A(int x=0,int y=0); được gọi là:
Hàm tạo
Hàm huỷ
Hàm bạn
Hàm thông thường
Cho đoạn chương trình:
class A
{
private:
int x,y;
};
Làm nhiệm vụ:
Khai báo A là một lớp với hai thành phần thuộc tính là x, y kiểu số nguyên
Khai báo A là một đối tượng với hai thành phần thuộc tính x, y kiểu integer
Đoạn chương trình trên bị lỗi
Khai báo lớp A với hai thành phần thuộc tính x,y kiểu số nguyên cho phép truy cập từ bên ngoài lớp
Cho đoạn chương trình sau:
class Diem {
float x,y;
public:
…
};
class Doanthang{
Diem A,B;
public:
…
};
Lớp Doanthang được gọi là:
Lớp bao của lớp Diem
Lớp cha của lớp Diem
Lớp con của lớp Diem
Lớp bạn của lớp Diem
Lớp bao là lớp:
Kế thừa lớp khác
Dẫn xuất ra lớp khác
Lớp bạn của lớp khác
Có thành phần thuộc tính là đối tượng của lớp khác
Hàm tạo có đặc điểm gì?
Hàm tạo là hàm thành viên của lớp dùng để khởi tạo bộ nhớ và giá trị ban đầu cho các thuộc tính trong lớp
Hàm tạo là hàm nằm bên ngoài lớp dùng để khởi tạo bộ nhớ cho đối tượng
Hàm tạo là hàm dùng để khởi tạo bộ nhớ cho đối tượng của lớp
Hàm tạo dùng để huỷ bộ nhớ cho đối tượng
Cho đoạn chương trình sau:
class Sinh_vien
{
private:
int Masv;
char Hoten[40];
char Ngaysinh;
int gioitinh;
….
};
Để khai báo một mảng gồm 10 sinh viên ta có thể sử dụng câu lệnh khai báo:
Sinh_vien ds[10];
Sinh_vien ds(10);
Sinh_vien *ds[10];
Không thể khai báo mảng các đối tượng
Trong khai báo lớp Đa thức(DT) dưới đây bằng C++:
class DT {
private:
int m;//bac cua da thuc
float *a;//Cac he so cua da thuc
public:
};
Bắt buôc phải xây dựng:
Hàm tạo
Hàm hủy
Hàm tạo sao chép
Tất cả các hàm trên
Lời gọi hàm tạo được hiểu như thế nào?
Gọi như hàm thành viên thông thường ( Tên đối tượng.Tên_hàm )
Không cần phải gọi tới hàm tạo vì ngay khi khai báo đối tượng sẽ tự gọi tới hàm tạo
Gọi bằng cách: Tên lớp.Tên hàm tạo()
Tất cả đều sai
Ta khai báo lớp cơ sở ảo khi nào:
Khi có sự trùng lặp lớp kế thừa trong đa kế thừa và kế thừa nhiều mức
Khi lớp có phương thức ảo thì bắt buộc phải khai báo là lớp cơ sở ảo
Khi có sự trùng tên giữa các phương thức của các lớp khác nhau
Tất cả đều sai
Một người cần xây dựng lớp Thời gian (Timer) trong máy tính cần hiển thị thông tin như sau: giờ:phút:giây. Vậy các thuộc tính cần xây dựng cho lớp Timer là:
Giờ
Phút
Giây
Giờ, Phút, Giây
Trong kế thừa, có thể:
Kế thừa tất cả các phương thức thuộc tính khai báo trong phần protected, public và không kế thừa hàm tạo, hàm huỷ
Kế thừa tất cả các phương thức thuộc tính khai báo trong phần protected, public bao gồm hàm tạo, hàm huỷ
Kế thừa tất cả các phương thức thuộc tính khai báo trong phần protected, public, private bao gồm hàm tạo, hàm huỷ
Kế thừa tất cả các phương thức thuộc tính khai báo trong phần protected, public không kế thừa hàm tạo, hàm huỷ
Các hàm tạo có thể có là:
Hàm tạo không đối; Hàm tạo có đối; Hàm tạo sao chép; Hàm tạo bộ nhớ
Hàm tạo không đối; Hàm tạo có đối; Hàm tạo sao chép
Hàm tạo không đối; Hàm tạo có đối
Hàm tạo không đối; Hàm tạo sao chép
Cho khai báo sau:
int trituyetdoi(int a); //tri tuyệt đối số nguyên
long trituyetdoi (long a); //tính trị tuyệt đối số nguyên dài
double trituyetdoi(double a); //tính trị tuyệt đối số thực dài
Tính chất chồng hàm
Tính chất nạp chồng của dữ liệu
Tính chất đa hình
Tính chất trừu tượng hóa
Lời gọi phương thức ảo là
Gọi như phương thức thông thường
Gọi kèm từ khoá virtual
Không thể gọi phương thức ảo
Phải gọi thông qua con trỏ đối tượng
Hàm hủy có mấy loại:
Một loại
Hai loại
Ba loại
Bốn loại
Trong khai báo dưới:
class Diem (1)
{(2)
private: int x,y;(3)
public: (4)
void Diem(int x,int y);(5)
void ~Diem();(6)
};(7)
Sai tại dòng:
Dòng 6 và 5
Dòng 3 và 5
Dòng 2 và 3
Dòng 3 và 6
Trong khai báo sau:
class Diem { (1)
private:
int x,y;(2)
public:(3)
…..
};(4)
class Hinhtron: public Diem (5)
{
private: r:real;(6)
};
Câu lệnh khai báo tại dòng số 5 cho biết:
Khai báo lớp Hinhtron kế thừa public lớp Diem
Khai báo lớp Diem kế thừa lớp Hinhtron
Khai báo lớp Hinhtron là bạn lớp Diem
Khai báo lớp Hinhtron là lớp bao của lớp Diem
Cho đoạn chương trình sau:
class A{
private:
int x,y;
void Nhap();
};
Cho lớp B kế thừa public lớp A, để lớp B có thể truy cập đến phương thức Nhap ta phải:
Không cần phải thay đổi gì
Đưa phương thức Nhap của lớp A vào phạm vi public hoặc protected
Không thể truy cập được dù có thay đổi gì
Tất cả đều sai
Cho đoạn chương trình sau:
class A{
private:
int x,y;
protected:
void Nhap();
};
Lớp B kế thừa lớp A, để phương thức Nhap của lớp A trở thành thành phần private của lớp B ta chọn loại kế thừa là:
Private
Public
Protected
Private hoặc Protected








