You are on page 1of 3

Lý thuyết

I. Constructor, Destructor

❖Constructor là một loại phương thức đặc biệt

dùng để khởi tạo thể hiện của lớp.

❖Bất kỳ một đối tượng nào được khai báo đều

phải sử dụng một hàm thiết lập để khởi tạo các

giá trị thành phần của đối tượng.

❖Hàm thiết lập được khai báo giống như một

phương thức với tên phương thức trùng với tên

lớp và không có giá trị trả về (kể cả void).

❖Constructor phải có phạm vi là public

❖Constructor có thể được khai báo chồng như các

hàm C++ thông thường

❖Constructor có thể được khai báo với các tham

số có giá trị ngầm định (tham số mặc nhiên)

❖Destructor, được gọi ngay trước khi một đối

tượng bị thu hồi.

❖Destructor thường được dùng để thực hiện việc

dọn dẹp cần thiết trước khi một đối tượng bị hủy.

❖Một lớp chỉ có duy nhất một Destructor

❖Phương thức Destructor trùng tên với tên lớp

nhưng có dấu ~ đặt trước

❖Được tự động gọi thực hiện khi đối tượng hết

phạm vi sử dụng.

❖Destructor phải có thuộc tính public

II. Friend function, Class function


1. Hàm bạn

Định nghĩa

 Hàm bạn trong c++ là hàm tự do, không thuộc lớp. Tuy nhiên hàm bạn trong c++ có quyền
truy cập các thành viên private của lớp.

 Một lớp trong c++ có thể có nhiều hàm bạn, và chúng phải nằm bên ngoài class.
Ưu điểm

 Kiểm soát các truy nhập ở cấp độ lớp. Nghĩa là không thể áp đặt hàm bạn cho một lớp, nếu
như chưa khai báo hàm bạn trong lớp.

 Giải quyết được vấn đề cần truy cập dữ liệu của lớp như trên.

Cú pháp

Đặt từ khoá friend phía trước, sau đó khai báo như một hàm thông thường.

2. Lớp bạn

Định nghĩa

Tương tự như hàm bạn, lớp bạn ( friend class ) trong C++ cũng cho phép lớp bạn của lớp kia truy
cập các thành viên private

Tính chất

Khai báo lớp A là bạn của lớp B không có nghĩa lớp B là bạn của lớp A (chỉ có tính 1 chiều). Điều
đó có nghĩa là chỉ có lớp A truy cập được thành viên của lớp B, nhưng ngược lại lớp B không thể
truy cập ngược lại của lớp A.

Không đối xứng.

Không bắc cầu.

Cú pháp

Ta cũng dùng từ khoá friend để khai báo giống như khai báo hàm bạn.

III. Static

Static trong C++ là một toán tử có tác dụng chỉ định một biến hoặc hàm thành viên
trong class tồn tại ở dạng tĩnh.

1. Biến static

Biến static trong C++ là biến thành viên ở dạng tĩnh và tồn tại duy nhất trong class. Biến static có
khả năng được sử dụng chung cho tất cả các đối tượng được tạo ra từ class. Ngoài ra do nó ở
dạng tĩnh nên chúng ta có thể sử dụng trực tiếp nó mà không cần phải tạo đối tượng từ class.

Để tạo biến static trong class C++, chúng ta thêm toán tử static vào đằng trước tên biến khi khai
báo biến trong class như sau. Lưu ý là access modifier của biến static phải ở dạng public để cho
phép truy cập nó từ ngoài phạm vi class.

Ưu điểm lớn nhất của biến static đó chính là chúng ta có thể sử dụng trực tiếp nó mà
không cần phải tạo ra đối tượng (instance) từ class. Tuy nhiên do không tạo ra instance
dẫn đến việc giá trị ban đầu của biến static cũng không được khởi tạo, nên khi dùng
biến static mà không tạo ra đối tượng, chúng ta cần phải khởi tạo giá trị cho nó ở bên
ngoài phạm vi class.

2. Hàm static

Hàm static trong C++ là hàm thành viên ở dạng tĩnh và tồn tại duy nhất trong class. Giống với
biến static thì hàm static có khả năng được sử dụng chung cho tất cả các đối tượng được tạo ra
từ class, và chúng ta có thể sử dụng trực tiếp nó mà không cần phải tạo đối tượng từ class.
3. Static member
Static member là những thành phần được khởi tạo và cấp phát vào 1 vùng nhớ cố định.
Thông thường 1 thuộc tính chỉ có thể được sử dụng khi có 1 object đại diện được khởi tạo,
tuy nhiên với static member, ta có thể sử dụng mà không cần phải khai báo 1 object nào cả.

Để tạo hàm static trong class C++, chúng ta thêm toán tử static vào đằng trước tên hàm khi khai
báo hàm trong class như sau. Lưu ý là access modifier của hàm static phải ở dạng public để cho
phép truy cập nó từ ngoài phạm vi class.

You might also like