<< Chapter < Page | Chapter >> Page > |
1: #include<iostream.h>
2:
3: class Test
4: {
5: public:
6: Test(int = 0); // Constructor mặc định
7: void Print() const;
8: private:
9: int X;
10: };
11:
12: Test::Test(int A)
13: {
14: X = A;
15: }
16:
17: void Test::Print() const
18: {
19: cout<<" X = "<<X<<endl
20: <<" this->X = "<<this->X<<endl
21: <<"(*this).X = "<<(*this).X<<endl;
22: }
23:
24: int main()
25: {
26: Test A(12);
27:
28: A.Print();
29: return 0;
30: }
Chúng ta chạy ví dụ 3.17 , kết quả ở hình 3.18
Hình 3.18: Kết quả của ví dụ 3.17
Một cách khác sử dụng con trỏ this là cho phép móc vào nhau các lời gọi hàm thành viên.
Ví dụ 3.18: Chương trình sau minh họa trả về một tham chiếu tới một đối tượng Time để cho phép các lời gọi hàm thành viên của lớp Time được móc nối vào nhau.
1: #include<iostream.h>
2:
3: class Time
4: {
5: public:
6: Time(int = 0, int = 0, int = 0); // Constructor mặc định
7: // Các hàm set
8: Time&SetTime(int, int, int); // Thiết lập Hour, Minute va Second
9: Time&SetHour(int); // Thiết lập Hour
10: Time&SetMinute(int); // Thiết lập Minute
11: Time&SetSecond(int); // Thiết lập Second
12: // Các hàm get
13: int GetHour() const; // Trả về Hour
14: int GetMinute() const; // Trả về Minute
15: int GetSecond() const; // Trả về Second
16: // Các hàm in
17: void PrintMilitary() const; // In t.gian theo dạng giờ quân đội
18: void PrintStandard() const; // In thời gian theo dạng giờ chuẩn
19: private:
20: int Hour; // 0 - 23
21: int Minute; // 0 - 59
22: int Second; // 0 - 59
23: };
24:
25: // Constructor khởi động dữ liệu private
26: // Gọi hàm thành viên SetTime() để thiết lập các biến
27: // Các giá trị mặc định là 0
28: Time::Time(int Hr, int Min, int Sec)
29: {
30: SetTime(Hr, Min, Sec);
31: }
32:
33: // Thiết lập các giá trị của Hour, Minute, và Second
34: Time&Time::SetTime(int H, int M, int S)
35: {
36: Hour = (H>= 0&&H<24) ? H : 0;
37: Minute = (M>= 0&&M<60) ? M : 0;
38: Second = (S>= 0&&S<60) ? S : 0;
39: return *this; // Cho phép móc nối
40: }
41:
42: // Thiết lập giá trị của Hour
43: Time&Time::SetHour(int H)
44: {
45: Hour = (H>= 0&&H<24) ? H : 0;
46: return *this; // Cho phép móc nối
47: }
48:
49: // Thiết lập giá trị của Minute
50: Time&Time::SetMinute(int M)
51: {
52: Minute = (M>= 0&&M<60) ? M : 0;
53: return *this; // Cho phép móc nối
54: }
55:
56: // Thiết lập giá trị của Second
57: Time&Time::SetSecond(int S)
58: {
59: Second = (S>= 0&&S<60) ? S : 0;
60: return *this; // Cho phép móc nối
61: }
62:
63: // Lấy giá trị của Hour
64: int Time::GetHour() const
65: {
66: return Hour;
67: }
68:
69: // Lấy giá trị của Minute
70: int Time::GetMinute() const
71: {
72: return Minute;
73: }
74:
75: // Lấy giá trị của Second
76: int Time::GetSecond() const
77: {
78: return Second;
79: }
80:
81: // Hiển thị thời gian dạng giờ quân đội: HH:MM:SS
82: void Time::PrintMilitary() const
83: {
84: cout<<(Hour<10 ? "0" : "")<<Hour<<":"
85: <<(Minute<10 ? "0" : "")<<Minute<<":"
86: <<(Second<10 ? "0" : "")<<Second;
87: }
88:
89: // Hiển thị thời gian dạng chuẩn: HH:MM:SS AM (hay PM)
90: void Time::PrintStandard() const
91: {
92: cout<<((Hour == 0 || Hour == 12) ? 12 : Hour % 12)<<":"
Notification Switch
Would you like to follow the 'Lập trình hướng đối tượng' conversation and receive update notifications?