1. Trang chủ
  2. » Công Nghệ Thông Tin

CHƯƠNG 5 CÁC CÁCH TẠO ĐỐI TƯỢNG docx

37 184 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 1,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TẠO 1 ĐỐI TƯỢNG BẰNG CÁCH KHAI BÁO BIẾNy Dùng phương thức thiết lập chuẩn... TẠO NHIỀU ĐỐI TƯỢNG BẰNG CÁCH KHAI BÁO BIẾNy Sử dụng phương thức thiết lập chuẩn... Đối tượng là thành phần c

Trang 1

CHƯƠNG

CHƯƠNG 5 CÁC CÁCH TẠO ĐỐI TƯỢNG

1

Trang 2

trình sử dụng biến và phương thức static

y Nắm vững khái niệm và cách sử dụng hàm friend

Trang 3

NỘI DUNG CHI TIẾT

y CÁCH KHAI BÁO BIẾN

Trang 4

TẠO 1 ĐỐI TƯỢNG BẰNG CÁCH KHAI BÁO BIẾN

y Dùng phương thức thiết lập chuẩn

Trang 5

TẠO NHIỀU ĐỐI TƯỢNG BẰNG CÁCH KHAI BÁO BIẾN

y Sử dụng phương thức thiết lập chuẩn

Trang 6

Đối tượng là thành phần của lớp

y Đối tượng có thể là thành phần của đối tượng khác, khi

được tự động gọi cho các đối tượng thành phần.

y Nếu đối tượng thành phần phải được cung cấp tham số khi thiết lập thì đối tượng kết hợp (đối tượng lớn) phải có

thiết lập thì đối tượng kết hợp (đối tượng lớn) phải có

phương thức thiết lập để cung cấp tham số thiết lập cho các đối tượng thành phần ợ g p

Trang 8

Đối tượng là thành phần của lớp

y Cú pháp để khởi tạo đối tượng thành phần là dùng dấu hai

8

chấm (:) theo sau bởi tên thành phần và tham số khởi tạo.

y Khi đối tượng kết hợp bị huỷ đi thì các đối tượng thành

phần của nó cũng bị huỷ đi, nghĩa là phương thức huỷ bỏ

sẽ được gọi cho các đối tượng thành phần, sau khi phương thức huỷ bỏ của đối tượng kết hợp được gọi

thức huỷ bỏ của đối tượng kết hợp được gọi.

Trang 9

class TamGiac

{

Ở ẠO Ố TƯỢNG THÀNH PHẦN, DÙNG DẤU

TamGiac(double xA, double yA, double xB, double yB, double xC, double

yC):A(xA yA) B(xB yB) C(xC yC){}

Trang 10

Đối tượng là thành phần của lớp

{ Trong các thành phần của lớp thành phần nào được khai báo

{ Trong các thành phần của lớp, thành phần nào được khai báo trước, phương thức hủy bỏ sẽ thực hiện sau.

Trang 11

ĐỐI TƯỢNG LÀ THÀNH PHẦN CỦA MẢNG

Trang 12

void reorder( SEQUENCE*, int );

void out( SEQUENCE*, int );

};

Trang 13

Từ đó

13class MAIN{

Trang 15

- Lớp không có phương thức thiết lập.

Lớp có phương thứcCÁC PHẦN TỬ PHẢI CÓ KHẢ NĂNG

TỰ KHỞI TẠO

– Lớp có phương thức thiết lập không tham số.– Lớp có phương thức thiết lập mà mọi tham số

Trang 16

class Diem {

double x,y;

public:

class String {char *p;

Trang 17

class Diem

{

double x,y;

class String{

Trang 18

class Diem

{

d bl

class String{

SinhVien(char *ht, char *ms, int ns):HoTen(ht),MaSo(ms), NamSinh(ns){}

SinhVien():HoTen(“Nguyen Van A”), MaSo(“19920014”),NamSinh(1982){}

tham số

//

};

Trang 19

ĐỐI TƯỢNG ĐƯỢC CẤP PHÁT ĐỘNG

y Đối tượng được cấp phát động là các đối tượng được tạo

19

ợ g ợ p p ộ g ợ g ợ ạ

ra bằng phép toán new và bị huỷ đi bằng phép toán delete

y Phép toán new cấp đối tượng trong vùng heap (hay vùng

y Dùng new và delete cũng có thể cấp nhiều đối tượng và

y Dùng new và delete cũng có thể cấp nhiều đối tượng và huỷ nhiều đối tượng

Trang 20

CẤP VÀ HỦY 1 ĐỐI TƯỢNG

class Diem { class String {char *p;

20

{double x,y;

int *pi = new int;

int *pj = new int(15);

Diem *pd = new Diem(20,40);

String *pa = new String("Nguyen Van A");g p g( g y );

//

Trang 21

CẤP VÀ HỦY NHIỀU ĐỐI TƯỢNG

y Trong trường hợp cấp nhiều đối tượng, ta không thể cung

21

cấp tham số cho từng phần tử được cấp:

y int *pai = new int[10];

y Diem *pad = new Diem[5]; // Bao sai

y String *pas = new String[5]; // Bao sai

y Lỗi trên được khắc phục bằng cách cung cấp phương thức thiết lập để đối tượng có khả năng tự khởi tạo.

Trang 22

CẤP VÀ HỦY NHIỀU ĐỐI TƯỢNG

class String

khởi độ ới ù iá t ị

khởi động với cùng giá trị

int *pai = new int[10];

Diem *pad = new Diem[5];

// ca 5 diem co cung toa do (0,0)String(const String &s) {p = strdup(s.p);}

~String() {delete [] p;}

//

};

// ca 5 d e co cu g toa do (0,0)

String *pas = new String[5];

// Ca 5 chuoi cung duoc khoi dong bang

– delete [] pai;

Trang 23

Lớp có dữ liệu static

23

y Nhằm để các đối tượng của lớp cùng chia sẻ vùng bộ ợ g p g g ộ nhớ

y Dữ liệu static còn gọi là thành viên tĩnh của lớp

y Trong ngôn ngữ lập trình hướng đối tượng, loại thành

viên này thường được gọi là biến lớp (class variables)

Trang 25

Lớp có phương thức static

25

y Phương thức static là phương thức có thể gọi thực g p g gọ ự

hiện ngay cả khi chưa tạo đối tượng thuộc lớp

y Phương thức static là phương thức để cho các đối

tượng của lớp cùng chia sẻ

y Chẳng hạn, như trong ví dụ trên, phương thức

b P () numberPerson().

Trang 26

Phương thức static các đối tượng của lớp cùng chia sẻ

Khô ầ hỉđịnh đối tượng cũng có thể gọi được hàm staticợ

Trang 29

HÀM FRIEND

Tôi không được vào nhà của Mai

không ai được

được vào nhà của MaiFriend

Trúc là

bạn tôi

Trang 31

Hàm tự do là friend của 1 lớp

Hàm kt_trung là hàm tự do (không thuộc class nào) nên không thể truy cập vào thành

hầ i t ( à ) ủ l

31

phần private (x và y) của class

point

Trang 32

Hàm kt_trung là hàm tự do (không thuộc class nào) nhưng là bạn (friend) của class point nên

ó thể t ậ à thà h hầ

32

có thể truy cập vào thành phần private (x và y) của class point

Trang 33

Hàm thành phần của một lớp là bạn của một lớp khác

Hàm f muốn truy xuất thành phần

33

thành phần private và protect của class A

class A

{

class B{

friend int B::f(…);

… };

}

int f(….);

…}

};

int B::f(….) {

…….

Trang 34

Hàm bạn của nhiều lớp

class A{

….

Hàm f muốn truy xuất thành phần

void f(A,B)

class B{

… friend void B f(A,B);

… };

Trang 35

vi của lớp được quyền truy cập đến những thành viên

có thuộc tính private, protected của một lớp khác

y Chẳng hạn, các hành vi của lớp A, muốn truy cập những thành viên private, protected của lớp B, thì trong lớp B phải mô tả lớp A có thuộc tính là friend

trong lớp B phải mô tả lớp A có thuộc tính là friend.

Trang 37

TÓM TẮT

37

Ngày đăng: 27/07/2014, 13:21

TỪ KHÓA LIÊN QUAN

w