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

Hàm tạo và đối tượng thành phần

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hàm Tạo Và Đối Tượng Thành Phần
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Giảng
Năm xuất bản 2023
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 8
Dung lượng 16,97 KB

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

Nội dung

cho đ i tối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng thành ph n u và dùng các hàm t o c a l p B đ kh i gán cho các đ iần của C ạo của lớp bao,

Trang 1

Hàm t o và đ i t ạo và đối tượng thành phần ối tượng thành phần ượng thành phần ng thành ph n ần 8.1 L p bao, l p thành ph n ớp bao, lớp thành phần ớp bao, lớp thành phần ần

M t l p có thu c tính là đ i tối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng c a l p khác g i là l p bao, ví d :ủa lớp khác gọi là lớp bao, ví dụ: ọi là lớp bao, ví dụ: ụ:

class A { private:

int a, b;

} ; class B { private:

double x, y, z;

} ; class C { private:

int m, n;

A u;

B p, q;

} ; Trong v d tr n th :ụ: ờn thỡ: ỡ:

C là l p bao

A, B là các l p thành ph n (c a C)ần (của C) ủa lớp khác gọi là lớp bao, ví dụ:

8.2 Hàm t o c a l p bao ạo và đối tượng thành phần ủa lớp bao ớp bao, lớp thành phần

+ Chỳ ý là trong c c phỏc phương thức của lớp bao không cho phép truy nhập trực tiếp ương thức của lớp bao không cho phép truy nhập trực tiếpng th c c a l p bao không cho phép truy nh p tr c ti pức của lớp bao không cho phép truy nhập trực tiếp ủa lớp khác gọi là lớp bao, ví dụ: ập trực tiếp ực tiếp ếp

đ n các thu c tính c a các đ i tếp ủa lớp khác gọi là lớp bao, ví dụ: ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng c a các l p thành ph n.ủa lớp khác gọi là lớp bao, ví dụ: ần (của C)

+ V v y, khi xõy d ng hàm t o c a l p bao, ph i s d ng các hàm t o c a l pỡ: ập trực tiếp ực tiếp ạo của lớp bao, phải sư dụng các hàm tạo của lớp ủa lớp khác gọi là lớp bao, ví dụ: ải sư dụng các hàm tạo của lớp ư ụ: ạo của lớp bao, phải sư dụng các hàm tạo của lớp ủa lớp khác gọi là lớp bao, ví dụ: thành ph n đ kh i gán cho các đ i tần (của C) ể khởi gán cho các đối tượng thành phần của lớp bao ởi gán cho các đối tượng thành phần của lớp bao ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng thành ph n c a l p bao ần (của C) ủa lớp khác gọi là lớp bao, ví dụ:

Ví dụ khi xây d ng hàm t o c a l p C, c n dùng các hàm t o c a l p A đ kh i gánực tiếp ạo của lớp bao, phải sư dụng các hàm tạo của lớp ủa lớp khác gọi là lớp bao, ví dụ: ần (của C) ạo của lớp bao, phải sư dụng các hàm tạo của lớp ủa lớp khác gọi là lớp bao, ví dụ: ể khởi gán cho các đối tượng thành phần của lớp bao ởi gán cho các đối tượng thành phần của lớp bao cho đ i tối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng thành ph n u và dùng các hàm t o c a l p B đ kh i gán cho các đ iần (của C) ạo của lớp bao, phải sư dụng các hàm tạo của lớp ủa lớp khác gọi là lớp bao, ví dụ: ể khởi gán cho các đối tượng thành phần của lớp bao ởi gán cho các đối tượng thành phần của lớp bao ối tượng của lớp khác gọi là lớp bao, ví dụ:

tượng của lớp khác gọi là lớp bao, ví dụ:ng thành ph n p, q.ần (của C)

8.3 Cách dùng hàm t o c a l p thành ph n đ xây d ng hàm t o c a l p bao ạo và đối tượng thành phần ủa lớp bao ớp bao, lớp thành phần ần ể xây dựng hàm tạo của lớp bao ựng hàm tạo của lớp bao ạo và đối tượng thành phần ủa lớp bao ớp bao, lớp thành phần

196

Trang 2

+ Đ dùng hàm t o (c a l p thành ph n) kh i gán cho đ i tể khởi gán cho các đối tượng thành phần của lớp bao ạo của lớp bao, phải sư dụng các hàm tạo của lớp ủa lớp khác gọi là lớp bao, ví dụ: ần (của C) ởi gán cho các đối tượng thành phần của lớp bao ối tượng của lớp khác gọi là lớp bao, ví dụ: ưọi là lớp bao, ví dụ:ng thành ph n c aần (của C) ủa lớp khác gọi là lớp bao, ví dụ:

l p bao, ta s d ng m u:ử dụng mẫu: ụ: ẫu:

tên_đ i_tối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng(danh sách giá tr )ị) + C c m u tr n c n vi t b n ngoài thõn hàm t o, ngay sau dũng đ u tiên Nói m tỏc phương thức của lớp bao không cho phép truy nhập trực tiếp ẫu: ờn thỡ: ần (của C) ếp ờn thỡ: ạo của lớp bao, phải sư dụng các hàm tạo của lớp ần (của C) cách c th h n, hàm t o sẽ có d ng:ụ: ể khởi gán cho các đối tượng thành phần của lớp bao ơng thức của lớp bao không cho phép truy nhập trực tiếp ạo của lớp bao, phải sư dụng các hàm tạo của lớp ạo của lớp bao, phải sư dụng các hàm tạo của lớp

tên_l p(danh sách đ i) : tên_đ i_tối tượng của lớp khác gọi là lớp bao, ví dụ: ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng( danh sách giá tr ),ị)

tên_đ i_tối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng( danh sách giá tr )ị) {

// Các câu l nh trong thân hàm t oệnh trong thân hàm tạo ạo của lớp bao, phải sư dụng các hàm tạo của lớp }

Chỳ ý là các d u ngo c sau tên đ i tặc sau tên đối tượng luôn luôn phải có, ngay cả khi danh sách ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng luôn luôn ph i có, ngay c khi danh sáchải sư dụng các hàm tạo của lớp ải sư dụng các hàm tạo của lớp giá tr bên trong là r ng ị) ỗng

+ Danh sách giá tr l y t danh sách đ i D a vào danh sách giá tr , Tr nh bi n d chị) ừ danh sách đối Dựa vào danh sách giá trị, Trỡnh biờn dịch ối tượng của lớp khác gọi là lớp bao, ví dụ: ực tiếp ị) ỡ: ờn thỡ: ị)

sẽ bi t c n d ng hàm t o nào đ kh i gán cho đ i tếp ần (của C) ực tiếp ạo của lớp bao, phải sư dụng các hàm tạo của lớp ể khởi gán cho các đối tượng thành phần của lớp bao ởi gán cho các đối tượng thành phần của lớp bao ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng N u danh sách giá tr là r ngếp ị) ỗng

th hàm t o kh ng đ i sẽ đỡ: ạo của lớp bao, phải sư dụng các hàm tạo của lớp ụ: ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ: ử dụng mẫu: ụ:c s d ng

+ Các đ i tối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng mu n kh i gán b ng hàm t o không đ i có th b qua, không c nối tượng của lớp khác gọi là lớp bao, ví dụ: ởi gán cho các đối tượng thành phần của lớp bao ằng hàm tạo không đối có thể bỏ qua, không cần ạo của lớp bao, phải sư dụng các hàm tạo của lớp ối tượng của lớp khác gọi là lớp bao, ví dụ: ể khởi gán cho các đối tượng thành phần của lớp bao ỏc phương thức của lớp bao không cho phép truy nhập trực tiếp ần (của C)

ph i li t kê trong hàm t o Nói cách khác: Các đ i tải sư dụng các hàm tạo của lớp ệnh trong thân hàm tạo ạo của lớp bao, phải sư dụng các hàm tạo của lớp ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng không đượng của lớp khác gọi là lớp bao, ví dụ:c li t kê trên dũngệnh trong thân hàm tạo

đ u hàm t o c a l p bao, đ u đần (của C) ạo của lớp bao, phải sư dụng các hàm tạo của lớp ủa lớp khác gọi là lớp bao, ví dụ: ều được khởi gán bằng hàm tạo không đối của lớp thành ượng của lớp khác gọi là lớp bao, ví dụ:c kh i gán b ng hàm t o không đ i c a l p thànhởi gán cho các đối tượng thành phần của lớp bao ằng hàm tạo không đối có thể bỏ qua, không cần ạo của lớp bao, phải sư dụng các hàm tạo của lớp ối tượng của lớp khác gọi là lớp bao, ví dụ: ủa lớp khác gọi là lớp bao, ví dụ:

ph n.ần (của C)

class A { private:

int a, b;

public:

A() { a=b=0;

} A(int a1, int b1) {

a = a1; b = b1;

}

} ; class B { private:

198

Trang 3

double x, y, z;

public:

B()

{

x = y = z = 0.0 ;

}

B(double x1, double y1)

{

x = x1; y = y1; z = 0.0 ;

}

B(double x1, double y1, double z1)

{

x = x1; y = y1; z = z1 ;

}

} ;

class C

{

private:

int m, n;

A u, v;

B p, q, r;

public:

C(int m1, int n1,int a1, int b1, double x1, double y1, double x2, double y2, double z2) : u(), v(a1,b1), q(x1,y1), r(x2,y2,z2)

{

m = m1 ; n = n1;

}

} ;

Trong hàm t o núi tr n c a l p C, th c c đ i tạo của lớp bao, phải sư dụng các hàm tạo của lớp ờn thỡ: ủa lớp khác gọi là lớp bao, ví dụ: ỡ: ỏc phương thức của lớp bao không cho phép truy nhập trực tiếp ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng thành ph n đần (của C) ượng của lớp khác gọi là lớp bao, ví dụ:c kh i gán nhởi gán cho các đối tượng thành phần của lớp bao ư sau:

u đượng của lớp khác gọi là lớp bao, ví dụ:c kh i gán b ng hàm t o không đ i c a l p Aởi gán cho các đối tượng thành phần của lớp bao ằng hàm tạo không đối có thể bỏ qua, không cần ạo của lớp bao, phải sư dụng các hàm tạo của lớp ối tượng của lớp khác gọi là lớp bao, ví dụ: ủa lớp khác gọi là lớp bao, ví dụ:

v đượng của lớp khác gọi là lớp bao, ví dụ:c kh i gán b ng hàm t o 2 đ i c a l p Aởi gán cho các đối tượng thành phần của lớp bao ằng hàm tạo không đối có thể bỏ qua, không cần ạo của lớp bao, phải sư dụng các hàm tạo của lớp ối tượng của lớp khác gọi là lớp bao, ví dụ: ủa lớp khác gọi là lớp bao, ví dụ:

q đượng của lớp khác gọi là lớp bao, ví dụ:c kh i gán b ng hàm t o 2 đ i c a l p Bởi gán cho các đối tượng thành phần của lớp bao ằng hàm tạo không đối có thể bỏ qua, không cần ạo của lớp bao, phải sư dụng các hàm tạo của lớp ối tượng của lớp khác gọi là lớp bao, ví dụ: ủa lớp khác gọi là lớp bao, ví dụ:

r đượng của lớp khác gọi là lớp bao, ví dụ:c kh i gán b ng hàm t o 3 đ i c a l p Bởi gán cho các đối tượng thành phần của lớp bao ằng hàm tạo không đối có thể bỏ qua, không cần ạo của lớp bao, phải sư dụng các hàm tạo của lớp ối tượng của lớp khác gọi là lớp bao, ví dụ: ủa lớp khác gọi là lớp bao, ví dụ:

p (không có m t) đặc sau tên đối tượng luôn luôn phải có, ngay cả khi danh sách ượng của lớp khác gọi là lớp bao, ví dụ:c kh i gán b ng hàm t o không đ i c a l p Bởi gán cho các đối tượng thành phần của lớp bao ằng hàm tạo không đối có thể bỏ qua, không cần ạo của lớp bao, phải sư dụng các hàm tạo của lớp ối tượng của lớp khác gọi là lớp bao, ví dụ: ủa lớp khác gọi là lớp bao, ví dụ:

8.4 S d ng các ph ử dụng các phương thức của lớp thành phần ụ ương thức của lớp thành phần ng th c c a l p thành ph n ức của lớp thành phần ủa lớp bao ớp bao, lớp thành phần ần

Trang 4

M c dù l p bao có các thành ph n đ i tặc sau tên đối tượng luôn luôn phải có, ngay cả khi danh sách ần (của C) ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng, nh ng trong l p bao l i không đư ạo của lớp bao, phải sư dụng các hàm tạo của lớp ượng của lớp khác gọi là lớp bao, ví dụ:c phép truy nh p đ n các thu c tính c a các đ i tập trực tiếp ếp ủa lớp khác gọi là lớp bao, ví dụ: ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng này V v y gi i ph p th ngỡ: ập trực tiếp ải sư dụng các hàm tạo của lớp ỏc phương thức của lớp bao không cho phép truy nhập trực tiếp ụ:

thườn thỡ:ng là:

+ Trong các l p thành ph n, xây d ng s n các phần (của C) ực tiếp ẵn các phương thức để có thể lấy ra các ương thức của lớp bao không cho phép truy nhập trực tiếpng th c đ có th l y ra cácức của lớp bao không cho phép truy nhập trực tiếp ể khởi gán cho các đối tượng thành phần của lớp bao ể khởi gán cho các đối tượng thành phần của lớp bao thu c tính c a l p.ủa lớp khác gọi là lớp bao, ví dụ:

+ Trong l p bao dùng các phương thức của lớp bao không cho phép truy nhập trực tiếpng th c c a l p thành ph n đ nh n các thu c tínhức của lớp bao không cho phép truy nhập trực tiếp ủa lớp khác gọi là lớp bao, ví dụ: ần (của C) ể khởi gán cho các đối tượng thành phần của lớp bao ập trực tiếp

c a các đ i tủa lớp khác gọi là lớp bao, ví dụ: ối tượng của lớp khác gọi là lớp bao, ví dụ: ượng của lớp khác gọi là lớp bao, ví dụ:ng thành viên c n dùng đ n.ần (của C) ếp

8.5 Các ví dụ

Hai chương thức của lớp bao không cho phép truy nhập trực tiếpng tr nh dỡ: ư i đây minh ho các đi u đó nói trong các m c trên.ạo của lớp bao, phải sư dụng các hàm tạo của lớp ều được khởi gán bằng hàm tạo không đối của lớp thành ụ:

DIEM (Đi m) và DT (Đo n th ng)ể khởi gán cho các đối tượng thành phần của lớp bao ạo của lớp bao, phải sư dụng các hàm tạo của lớp ẳng)

L p DIEM là l p thành ph n c a l p DTần (của C) ủa lớp khác gọi là lớp bao, ví dụ:

//CT4_12.CPP // Thuoc tinh doi tuong

#include <conio.h>

#include <iostream.h>

class DIEM {

private:

int x,y ; public:

DIEM() { x=y=0;

} DIEM(int x1, int y1) {

x= x1; y=y1;

} void in() { cout << "(" << x << "," << y << ")" ; }

} ; class DT { private:

DIEM d1, d2;

200

Trang 5

int m;

public:

DT() : d1(), d2() {

m=0;

} DT(int m1,int x1, int y1, int x2, int y2) : d1(x1,y1), d2(x2,y2) {

m=m1;

} DT(int m1,DIEM t1, DIEM t2) {

m=m1;

d1 = t1;

d2 = t2;

} void in() { cout << "\n Diem dau : "; d1.in();

cout << "\n Diem cuoi: "; d2.in();

cout << "\n Mau : " << m;

} };

void main() {

DT u, v(1,100,100,200,200), s(2,DIEM(300,300),

DIEM(400,400)) ; clrscr();

u.in();

v.in();

s.in();

getch();

}

Diem (Đi m) ể khởi gán cho các đối tượng thành phần của lớp bao

DTron (Đườn thỡ:ng trũn)

202

Trang 6

L p DTron có m t l p thành ph n là l p Diem.ần (của C)

Trong l p DTron đ a vào phư ương thức của lớp bao không cho phép truy nhập trực tiếpng th c vẽ đức của lớp bao không cho phép truy nhập trực tiếp ườn thỡ:ng trũn

Trong l p HTron đ a vào phư ương thức của lớp bao không cho phép truy nhập trực tiếpng th c vẽ và tô m u h nh trũn.ức của lớp bao không cho phép truy nhập trực tiếp ần (của C) ỡ:

Khi xây d ng phực tiếp ương thức của lớp bao không cho phép truy nhập trực tiếpng th c c a l p bao c n s d ng các phức của lớp bao không cho phép truy nhập trực tiếp ủa lớp khác gọi là lớp bao, ví dụ: ần (của C) ử dụng mẫu: ụ: ương thức của lớp bao không cho phép truy nhập trực tiếpng th c c a l p thànhức của lớp bao không cho phép truy nhập trực tiếp ủa lớp khác gọi là lớp bao, ví dụ:

ph n.ần (của C)

//CT4_13.CPP

// Thuoc tinh doi tuong

#include <conio.h>

#include <iostream.h>

#include <graphics.h>

class Diem

{

private:

int x,y ;

public:

Diem()

{

x=y=0;

}

Diem(int x1, int y1)

{

x= x1; y=y1;

}

int getx()

{

return x;

}

int gety()

{

return y;

}

} ;

class DTron // Duong tron

{

private:

Diem t ; // tam

int r ;

int m;

Trang 7

DTron() { r=m=0;

} DTron(int x1,int y1,int r1,int m1): t(x1,y1) {

m=m1; r=r1;

} int mau() {

return m;

} void ve() {

setcolor(m);

circle(t.getx(),t.gety(),r);

} };

class HTron {

private:

DTron dt;

Diem d;

int m;

public:

HTron() { m=0;

} HTron(int x1, int y1, int r1, int m1,

int x, int y, int mt): dt(x1,y1,r1,m1), d(x,y) {

m = mt;

} void ve() {

dt.ve();

setfillstyle(1,m);

floodfill(d.getx(),d.gety(),dt.mau());

204

Trang 8

} ;

void main()

{

int mh=0, mode=0;

initgraph(&mh,&mode,"");

setbkcolor(1);

DTron dt(100,100,80,6);

HTron ht(300,300,150,15,300,300,4); dt.ve();

ht.ve();

getch();

closegraph();

}

Ngày đăng: 25/10/2013, 04:20

TỪ KHÓA LIÊN QUAN

w