Tải bản đầy đủ (.ppt) (13 trang)

Bài giảng Lập trình hướng đối tượng - Chương 6: Khuôn hình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (215.47 KB, 13 trang )

Lập trình hướng đối tượng
Lập trình hướng đối tượng

Hà Văn Sang Hà Văn Sang
Bộ môn: Tin học TC – KT
Khoa: Hệ ThốngKhoa
ThơngHTTT,
Tin Kinh tế - Học Viện Tài Chính
Tel: 0982.165.568
Academy Of Finance, Hanoi
Email:
Website: />
05/08/21 21:45


Lập trình hướng đối tượng
CHƯƠNG VI

Hà Văn Sang
Khoa HTTT,
Academy Of Finance, Hanoi

05/08/21 21:45


1. Khn hình hàm
Định nghĩa

Ví dụ 1: xây dựng hàm tìm max của hai số
thực
-Xây dựng hàm tính max của ba số thực


-Xây dựng hàm tính max của n số thực
Giải quyết:
•Nạp chồng hàm max
Vấn đề được giải quyết, nhưng phải viết n
hàm
Object Oriented Programing– Information Systems Department

3


1. Khn hình hàm
Ví dụ 2: xây dựng hàm tìm max của hai số
bất kỳ
Giải quyết:
int max(int a, int b){
if(a>b) return a;
elsse return b;}

float max(float a, float b){
if(a>b) return a;
elsse return b;}

Object Oriented Programing– Information Systems Department

4


1. Khn hình hàm
Khái niệm


Là mẫu của hàm có tham số là kiểu của đối
số
Với mỗi giá trị hợp lệ của đối số sẽ phát sinh
một báo:
hàm cụ thể gọi là hàm thể hiện
Khai
template <class T1, class T2....> <kiểu giá trị trả về> hàm>([ds tham số])
{
//thân khn hình hàm
}

Object Oriented Programing– Information Systems Department

5


1. Khn hình hàm
Ví dụ1 :
template <class T> T max(T a, T b){
if(a>b) return a ;
else return b;}

Ví dụ 2: xây dựng khn hình tính tổng 3 số
bấttemplate
kỳ <class T1, class T2, class T3> T1 tong(T1 x, T2 y, T3 z)
{
return x+y+z ;
}


Object Oriented Programing– Information Systems Department

6


1. Khn hình hàm
Gọi hàm từ khn hình hàm
<tên hàm>(đối số)
Tên hàm trùng tên khn hình hàm

Ví dụ:
int a,b ;
float x,y ;
max(a,b) ;

Object Oriented Programing– Information Systems Department

7


1. Khn hình hàm
Với khn hình hàm max:
int a,b;
max(a,b)

Khi đó chương trình dịch sẽ xác định:
-Kiểu của a,b là int nên kiểu của T cũng sẽ là int
-Phát sinh một hàm cụ thể từ khn hình hàm
max
-Hàm max lúc này sẽ như sau:

int max(int a, int b)
{
if(a>b) return a ;
else return b;
}
Object Oriented Programing– Information Systems Department

8


2. Khn hình lớp
Ví dụ: xây dựng lớp MT1 với:
•Số phần tử
•Mảng các phần tử kiểu: int, char, float, long ...
•Các phương thức: nhập, in, cộng, trừ

Nhận xét:
-Với mỗi kiểu dữ liệu của mảng sẽ có 1 lớp
-Các lớp này có chung các thao tác
-Chỉ kiểu dữ liệu của mảng là khác
 C++ cho phép xây dựng một mẫu của lớp, mẫu này có tham số để
ứng với mỗi giá trị của tham số sẽ phát sinh một lớp

Object Oriented Programing– Information Systems Department

9


2. Khn hình lớp
Khái niệm

•Là một mẫu của lớp có các tham số là các kiểu dữ liệu
(tham số kiểu)
•Với mỗi giá trị của tham số kiểu sẽ phát sinh ra một thể
hiện là một lớp cụ thể (lớp khuôn hình)

Khai báo:
template <class T1, class T2...> class <tên khn hình lớp>
{
<khai báo các thành phần>
};
Object Oriented Programing– Information Systems Department

10


2. Khn hình lớp
Ví dụ:
template <class T>
class MT1{
int spt;
T d[10];
public:
void nhap();
void in();
…}

Object Oriented Programing– Information Systems Department

11



2. Khn hình lớp
Định nghĩa phương thức

-Định nghĩa bên trong khai báo của khn hình như
hàm thơng thừơng
- Định nghĩa bên ngồi khai báo

Ví dụ:
template <class T> void MT<T>::nhap()
{

}
Object Oriented Programing– Information Systems Department

12


2. Khn hình lớp
Sử dụng khn hình lớp

- Mỗi giá trị của tham số kiểu, chương trình dịch sẽ
phát sinh ra một lớp cụ thể
Cú pháp: <tên khn hình><kiểu>
Khai báo đối tựơng: <tên khn hình><kiểu> Víbiến>
dụ:
MT<int> a;
MT<float> b;
MT<long> c;


Object Oriented Programing– Information Systems Department

13



×