Bài giảng Lập trình hướng đối tượng và C++: Chương 3
Số trang: 5
Loại file: pdf
Dung lượng: 202.57 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nội dung chương 3 trình bày đến người học những vấn đề liên quan đến "Lớp và đối tượng", cụ thể như: Lớp khai báo, định nghĩa hàm thành viên, đối tượng: khai báo, sử dụng, gán, sơ lược về hàm xây dựng, hàm hủy, dữ liệu và hàm thành viên tĩnh, khai thác 1 lớp,...Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng và C++: Chương 3N i dung• L p: khai báo, ñ nh nghĩa hàm thành viên.Chương 3• ð i tư ng: khai báo, s d ng, gán.L P VÀ ð I TƯ NG• Sơ lư c v hàm xây d ng, hàm h y• D li u và hàm thành viên tĩnh• Khai thác 1 l p12L pL p• Khai báo• Đ nh nghĩa hàm thành viênclass {Thu c tính truy c p :Thu c tính truy c p :};Toán t chph m vi :: ( Các tham s+ Ki u ){< Khai báo các dli u c c bc a hàm>< Thân hàm - N i dung hàm >Sơ ñ l pñi m trongkhông gian2 chi u< Câu l nh return >}34L pð i tư ng• Ví d• Kh i t o ñ i tư ng– D ng bi n:VD: ;Diem a, b;– D ng m ng: [Kích thư c];VD:Diem mang[10];1000Hxya1004Hxy1008Hxymangb56ð i tư ngð i tư ng• Kh i t o ñ i tư ng• S d ng ñ i tư ng– D ng con tr :VD:– Khi kh i t o ñ i tư ng xong, ta có th :• Truy xu t ñ n d li u thành viên c a ñ i tư ng.• G i hàm trên ñ i tư ng.tùy theo thu c tính truy c p c a các thành ph n ñó.Diem *pa, *ds;pa= new Diem; ds= new Diem[10];delete pa; delete[] ds;Chú ý: Ph i c p và thu h i vùng nh cho con tr ñ i tư ng.*pa1060*ds 1064xy1060H1064Hxy78ð i tư ngð i tư ng• Ví d• Phép gán ñ i tư ng:– Dùng d u = ( có s n trong ngôn ng C++).– Th c ch t là gán tương ng các thành ph n d li u c a haiñ i tư ng cho nhau.– Ch ñúng khi thành ph n d li u không có con tr .=> Ph i ñ nh nghĩa l i phép gán khi d li u có con tr .void main() {DiemDiema;a.KhoiTao(10,20);b, *pb;b = a;// In ra (10, 20)b.InDiem();pb = new Diem;9*pb = a; pb->InDiem();// In ra (10, 20)Hàm xây d ng – Hàm h yHàm xây d ng – Hàm h y• Hàm xây d ng (Constructor)• Hàm xây d ng (constructor)– T i sao c n hàm xây d ng ?10– Dùng ñ kh i t o ñ i tư ng:• Gán giá tr ñ u cho các d li u thành viên.• C p vùng nh cho các con tr thành viên.– Cú pháp:• Cùng tên v i tên l p, không có tr tr v (k c void).hi ung ph• Có th không có hay có nhi u tham s .• Có th không có, có 1 hay nhi u hàm xây d ng.– S d ng :C n ph i kh i t o giá tr ban ñ ucho các d li u thành viên• Không ñư c g i tr c ti p.• S ñư c t ñ ng g i khi kh i t o ñ i tư ng.1112Hàm xây d ng – Hàm h yHàm xây d ng – Hàm h y• Ví d 1 v hàm xây d ng• Ví d 2 v hàm xây d ngclass Diem {int x,y;public:Diem();// xd m c nhiênDiem(int);Diem(int,int);...};Diem::Diem(){ x=y=0; }Diem::Diem(int a){ x = y = a; }Diem::Diem(int h, int t){ x=h; y=t; }void main() {// Goi Diem()Diem a;// In (0,0)a. InDiem();// Diem(int,int)Diem b(10,5);// Diem(int)Diem c(3);Diem *pa = new Diem();Diem *pb = new Diem(10,5);Diem *pc = new Diem(3);// Goi Diem()Diem ds1[10];// Goi Diem()Diem *ds2 = new Diem [10];...}1314Hàm xây d ng – Hàm h yCác lo i ñ i tư ng• Hàm h y (destructor)• ð i tư ng toàn c c - ð i tư ng c c b– Dùng ñ thu h i vùng nh ñã c p cho các d li u thànhviên là con tr c a ñ i tư ng, khi h y b ñ i tư ng.=> delete các con tr là d li u thành viên.– M t l p có th không có ho c ch có duy nh t 1 hàm h y.– Cú pháp : ~ ( ) { … }– Không ñư c g i tr c ti p mà s ñư c t ñ ng g i khi h yb ñ i tư ng.VD:– ð i tư ng toàn c c :• Khai báo ngoài các l p và ngoài hàm main().• S ñư c kh i t o (t ñ ng g i hàm xây d ng tươngng) trư c khi hàm main() th c thi.• S ñư c h y b ( t ñ ng g i hàm h y cho ñ i tư ng )sau khi k t thúc hàm main().– ð i tư ng c c b :• Khai báo trong m t hàm.Diem::~Diem () { }SinhVien::~SinhVien() {delete[] hoten;}• S kh i t o trong khi th c thi hàm ñó.15• S ñư c h y b ( t ñ ng g i hàm h y cho ñ i tư ngñó) trư c khi hàm k t thúc.16Dli u và hàm thành viên tĩnhD• D li u thành viên tĩnh (static)li u và hàm thành viên tĩnh• Hàm thành viên tĩnh (static)– Là d li u thành viên dùng chung cho t t c các ñ i tư ngc a cùng 1 l p => t n t i ñ c l p v i các ñ i tư ng.– Gi ng như 1 bi n toàn c c.– ð c l p v i các ñ i tư ng=> khi g i hàm không c n ñ i tư ng nào ::::: (danh sách tham s )– Ph i ñư c kh i t o bên ngoài c a l p.– Ch c n thêm static vào trư c khai báo hàm trong l p.– Thư ng ñư c s d ng ñ ñ m s lư ng ñ i tư ng hi n có.– Gi ng như 1 hàm toàn c c.T i th i ñi m này17dem = ?Khai thác m t l pKhai thác m t l p• Tránh ñ nh nghĩa l p nhi u l n :• Khai báo l p : file .hpp• ð nh nghĩa hàm thành viên : file .cpp• S d ng l p : trong 1 file khác18ð tránh #include nhi uvidu.cppl n m t l p có trongnhi u t p tin khác nhau,Diem.hpp#include “Diem.hpp”class Diem {int x,y;...};Diem.cppVidu.cpp#include “Diem.cpp”Diem::Diem(){… }void Diem::InDiem(){…}...void main () {Diem a;a.InDiem();….}ta dùng các txkhóa ti nlý.#ifndef#define#endif1920 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng và C++: Chương 3N i dung• L p: khai báo, ñ nh nghĩa hàm thành viên.Chương 3• ð i tư ng: khai báo, s d ng, gán.L P VÀ ð I TƯ NG• Sơ lư c v hàm xây d ng, hàm h y• D li u và hàm thành viên tĩnh• Khai thác 1 l p12L pL p• Khai báo• Đ nh nghĩa hàm thành viênclass {Thu c tính truy c p :Thu c tính truy c p :};Toán t chph m vi :: ( Các tham s+ Ki u ){< Khai báo các dli u c c bc a hàm>< Thân hàm - N i dung hàm >Sơ ñ l pñi m trongkhông gian2 chi u< Câu l nh return >}34L pð i tư ng• Ví d• Kh i t o ñ i tư ng– D ng bi n:VD: ;Diem a, b;– D ng m ng: [Kích thư c];VD:Diem mang[10];1000Hxya1004Hxy1008Hxymangb56ð i tư ngð i tư ng• Kh i t o ñ i tư ng• S d ng ñ i tư ng– D ng con tr :VD:– Khi kh i t o ñ i tư ng xong, ta có th :• Truy xu t ñ n d li u thành viên c a ñ i tư ng.• G i hàm trên ñ i tư ng.tùy theo thu c tính truy c p c a các thành ph n ñó.Diem *pa, *ds;pa= new Diem; ds= new Diem[10];delete pa; delete[] ds;Chú ý: Ph i c p và thu h i vùng nh cho con tr ñ i tư ng.*pa1060*ds 1064xy1060H1064Hxy78ð i tư ngð i tư ng• Ví d• Phép gán ñ i tư ng:– Dùng d u = ( có s n trong ngôn ng C++).– Th c ch t là gán tương ng các thành ph n d li u c a haiñ i tư ng cho nhau.– Ch ñúng khi thành ph n d li u không có con tr .=> Ph i ñ nh nghĩa l i phép gán khi d li u có con tr .void main() {DiemDiema;a.KhoiTao(10,20);b, *pb;b = a;// In ra (10, 20)b.InDiem();pb = new Diem;9*pb = a; pb->InDiem();// In ra (10, 20)Hàm xây d ng – Hàm h yHàm xây d ng – Hàm h y• Hàm xây d ng (Constructor)• Hàm xây d ng (constructor)– T i sao c n hàm xây d ng ?10– Dùng ñ kh i t o ñ i tư ng:• Gán giá tr ñ u cho các d li u thành viên.• C p vùng nh cho các con tr thành viên.– Cú pháp:• Cùng tên v i tên l p, không có tr tr v (k c void).hi ung ph• Có th không có hay có nhi u tham s .• Có th không có, có 1 hay nhi u hàm xây d ng.– S d ng :C n ph i kh i t o giá tr ban ñ ucho các d li u thành viên• Không ñư c g i tr c ti p.• S ñư c t ñ ng g i khi kh i t o ñ i tư ng.1112Hàm xây d ng – Hàm h yHàm xây d ng – Hàm h y• Ví d 1 v hàm xây d ng• Ví d 2 v hàm xây d ngclass Diem {int x,y;public:Diem();// xd m c nhiênDiem(int);Diem(int,int);...};Diem::Diem(){ x=y=0; }Diem::Diem(int a){ x = y = a; }Diem::Diem(int h, int t){ x=h; y=t; }void main() {// Goi Diem()Diem a;// In (0,0)a. InDiem();// Diem(int,int)Diem b(10,5);// Diem(int)Diem c(3);Diem *pa = new Diem();Diem *pb = new Diem(10,5);Diem *pc = new Diem(3);// Goi Diem()Diem ds1[10];// Goi Diem()Diem *ds2 = new Diem [10];...}1314Hàm xây d ng – Hàm h yCác lo i ñ i tư ng• Hàm h y (destructor)• ð i tư ng toàn c c - ð i tư ng c c b– Dùng ñ thu h i vùng nh ñã c p cho các d li u thànhviên là con tr c a ñ i tư ng, khi h y b ñ i tư ng.=> delete các con tr là d li u thành viên.– M t l p có th không có ho c ch có duy nh t 1 hàm h y.– Cú pháp : ~ ( ) { … }– Không ñư c g i tr c ti p mà s ñư c t ñ ng g i khi h yb ñ i tư ng.VD:– ð i tư ng toàn c c :• Khai báo ngoài các l p và ngoài hàm main().• S ñư c kh i t o (t ñ ng g i hàm xây d ng tươngng) trư c khi hàm main() th c thi.• S ñư c h y b ( t ñ ng g i hàm h y cho ñ i tư ng )sau khi k t thúc hàm main().– ð i tư ng c c b :• Khai báo trong m t hàm.Diem::~Diem () { }SinhVien::~SinhVien() {delete[] hoten;}• S kh i t o trong khi th c thi hàm ñó.15• S ñư c h y b ( t ñ ng g i hàm h y cho ñ i tư ngñó) trư c khi hàm k t thúc.16Dli u và hàm thành viên tĩnhD• D li u thành viên tĩnh (static)li u và hàm thành viên tĩnh• Hàm thành viên tĩnh (static)– Là d li u thành viên dùng chung cho t t c các ñ i tư ngc a cùng 1 l p => t n t i ñ c l p v i các ñ i tư ng.– Gi ng như 1 bi n toàn c c.– ð c l p v i các ñ i tư ng=> khi g i hàm không c n ñ i tư ng nào ::::: (danh sách tham s )– Ph i ñư c kh i t o bên ngoài c a l p.– Ch c n thêm static vào trư c khai báo hàm trong l p.– Thư ng ñư c s d ng ñ ñ m s lư ng ñ i tư ng hi n có.– Gi ng như 1 hàm toàn c c.T i th i ñi m này17dem = ?Khai thác m t l pKhai thác m t l p• Tránh ñ nh nghĩa l p nhi u l n :• Khai báo l p : file .hpp• ð nh nghĩa hàm thành viên : file .cpp• S d ng l p : trong 1 file khác18ð tránh #include nhi uvidu.cppl n m t l p có trongnhi u t p tin khác nhau,Diem.hpp#include “Diem.hpp”class Diem {int x,y;...};Diem.cppVidu.cpp#include “Diem.cpp”Diem::Diem(){… }void Diem::InDiem(){…}...void main () {Diem a;a.InDiem();….}ta dùng các txkhóa ti nlý.#ifndef#define#endif1920 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình hướng đối tượng Lập trình hướng đối tượng Lập trình hướng đối tượng và C++ Bài giảng Lập trình Lớp và đối tượng Hàm xây dựngTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 276 0 0 -
101 trang 200 1 0
-
14 trang 134 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 113 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
265 trang 83 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 75 0 0 -
33 trang 70 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 52 0 0