[r]
(1)L PỚ
L PỚ
B mơn H Th ng Máy Tính Truy n Thơngộ ệ ố ề
Khoa Công Ngh Thông Tin Truy n Thôngệ ề
Đ i h c C n Th ạ ọ ầ ơ
(CLASS)
(2)N i dungộ
N i dungộ
L p – Quy n truy xu tớ ề ấ
Khai báo, đ nh nghĩa l p đ n gi nị ớ ơ ả Hàm thành viên n i n (inline)ộ ế
Hàm xây d ng (constructor)ự Hàm h y (destructor)ủ
Hàm b n (friend) – L p b nạ ớ ạ Đ i s m c đ nhố ố ặ ị
(3)N i dung (tt)ộ
N i dung (tt)ộ
Toán t ph m viử ạ
Danh sách kh i t o thành viênở ạ
Thành viên h ng - Thành viên tĩnhằ Thành viên tham chi uế
Thành viên đ i tố ượng c a l pủ ớ M ng đ i tả ố ượng
Ph m vi l pạ ớ
C u trúc (structure) h p (union)ấ ợ
(4)Khái ni m l pệ ớ
Khái ni m l pệ ớ
L pớ : ki u d li u tr u tể ữ ệ ừ ượng.
TÊN L PỚ
TÊN L PỚ
D li u ữ ệ
thành viên Hàm thành viên Đ c t ặ ả
đ i ố
tượng
T p ậ
thao tác
class TÊNL PTÊNL PỚỚ
[: <Quy n truy xu tề ấ > L PCHAL PCHAỚỚ ] { <Quy n truy xu t ề ấ > :
DataType1 memberdata1; DataType2 memberdata2; ……….
< Quy n truy xu t ề ấ > :
memberFunction1(); memberFunction2(); …………
};
private protected
(5)L p đ n gi nớ ơ ả
L p đ n gi nớ ơ ả
Ví dụ:
class PointPoint {
int xVal, yVal; public:
void SetPt (int, int); void OffsetPt (int, int);
};
void PointPoint::SetPt (int x, int y) { xVal = x;
yVal = y; }
void PointPoint::OffsetPt (int x, int y) { xVal += x;
yVal += y;
void main() { Point pt;
pt.SetPt(10,20); pt.OffsetPt(2,2); ……
pt.xVal = 10; // Đúng hay sai? Point pt1, pt2, pt3;
………
G i hàmọ
trên đ i tố ượng
T o raạ
đ i tố ượng thu c l pộ ớ
Point
Khai báo L pớ
Đ nh nghĩaị
(6) H p (unionợ ):
T t c thành viên ánh x đ n đ a ch bên ấ ả ạ ế ị ỉ
trong đ i tố ượng (khơng liên ti p).ế
Kích thước = kích thước c a d li u l n nh t.ủ ữ ệ ớ ấ
union ValueValue {
long integer; double real; char *string; Pair list; //
};
Kích thước c a Value ủ
class PairPair {
Value *head; Value *tail;
class ObjectObject { private:
enum ObjType {intObj, realObj, strObj, listObj}; ObjType type; // ki u đ i tể ố ượng
Value val; // giá tr c a đ i tị ủ ố ượng
(7) Đi u n đ i tề ể ố ượng m c bit.ở ứ
VD: Truy xu t bit header c a gói tin.ấ ủ
typedef unsigned int BitBit; class PacketPacket {
Bit type : 2; // r ng bitộ
Bit acknowledge : 1; // r ng bitộ
Bit channel : 4; // r ng bitộ
Bit sequenceNo : 4; // r ng bitộ
Bit moreData : 1; // r ng bitộ
// };
enum PacketType { dataPack, controlPack, supervisoryPack };
enum Bool { false, true };
// …………
Packet
Packet p;