Lập trình hướng đối tượng (oop) trong c#
Đây là bài viết cuối cùng trong Series Lập Trình hướng đối tượng. Và trong bài viết này chúng ta sẽ làm một số bài tập lập trình hướng đối tượng tổng hợp nhé.
Sau đây, chúng ta sẽ cùng nhau đi làm 1 bài tập lập trình hướng đối tượng khá cơ bản:
Bài tập lập trình hướng đối tượng cơ bản
Bài tập xây dựng lớp Phân số
Đề bài:
Xây dựng lớp Phanso
gồm:
- Thuộc Tính:
tuso
,mauso
. - Phương thức:
- Hàm Khởi Tạo Không Tham Số, Hàm Hủy
- Nhập , Xuất
Cong()
,Tru()
,Nhan()
,Chia()
Tính Tổng, Hiệu, Tích, Thương 2 phân số obj1
và obj2
rồi in kết quả ra màn hình
Code xây dựng class Phân số:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include
using
namespace
std
;
class
Phanso
{
private
:
int
tuso
,
mauso
;
public
:
Phanso
(
)
{
tuso
=
0
;
mauso
=
1
;
}
~
Phanso
(
)
{
tuso
=
0
;
mauso
=
1
;
}
//—————————————————————–//
void
set
(
)
{
cout
<
<
“Nhap Tu So: “
;
cin
>
>
this
–
>
tuso
;
cout
<
<
“Nhap Mau So: “
;
cin
>
>
this
–
>
mauso
;
}
void
get
(
)
{
cout
<
<
this
–
>
tuso
<
<
“/”
<
<
this
–
>
mauso
<
<
endl
;
}
//—————————————————————–//
Phanso
Cong
(
Phanso
obj1
,
Phanso
obj2
)
{
Phanso
obj3
;
obj3
.
tuso
=
obj1
.
tuso *
obj2
.
mauso
+
obj1
.
mauso *
obj2
.
tuso
;
obj3
.
mauso
=
obj1
.
mauso *
obj2
.
mauso
;
return
obj3
;
}
Phanso
Tru
(
Phanso
obj1
,
Phanso
obj2
)
{
Phanso
obj3
;
obj3
.
tuso
=
obj1
.
tuso *
obj2
.
mauso
–
obj1
.
mauso *
obj2
.
tuso
;
obj3
.
mauso
=
obj1
.
mauso *
obj2
.
mauso
;
return
obj3
;
}
Phanso
Nhan
(
Phanso
obj1
,
Phanso
obj2
)
{
Phanso
obj3
;
obj3
.
tuso
=
obj1
.
tuso *
obj2
.
tuso
;
obj3
.
mauso
=
obj1
.
mauso *
obj2
.
mauso
;
return
obj3
;
}
Phanso
Chia
(
Phanso
obj1
,
Phanso
obj2
)
{
Phanso
obj3
;
obj3
.
tuso
=
obj1
.
tuso *
obj2
.
mauso
;
obj3
.
mauso
=
obj1
.
mauso *
obj2
.
tuso
;
return
obj3
;
}
}
;
int
main
(
)
{
Phanso
obj1
,
obj2
,
obj3
;
obj1
.
set
(
)
;
obj2
.
set
(
)
;
obj3
=
obj3
.
Cong
(
obj1
,
obj2
)
;
obj3
.
get
(
)
;
obj3
=
obj3
.
Tru
(
obj1
,
obj2
)
;
obj3
.
get
(
)
;
obj3
=
obj3
.
Nhan
(
obj1
,
obj2
)
;
obj3
.
get
(
)
;
obj3
=
obj3
.
Chia
(
obj1
,
obj2
)
;
obj3
.
get
(
)
;
return
0
;
}
Input:
0
1
2
3
1
2
3
4
Output
0
1
2
3
4
5
10/8
-2/8
3/8
4/6
Bài Tập quản lý Vận động viên
Đề bài
Xây dựng lớp vận động viên VanDongVien
gồm:
- Thuộc tính:
hoten
(chuỗi ký tự),tuoi
(số nguyên),monthidau
(chuỗi ký tự),cannang
(số thực),chieucao
(số thực). - Phương thức:
- Thiết lập không tham số.
- Thiết lập 5 tham số
- Hủy bỏ
- Nạp chồng toán tử nhập >>
- Nạp chồng toán tử xuất <<
- Nạp chồng toán tử so sánh > (một vận động viên là lớn hơn nếu chiều cao lớn hơn,
trong trường hợp chiều cao bằng nhau thì xét cân nặng lớn hơn)
Xây dựng chương trình chính:
- Khai báo
p
là đối tượng lớpVandongvien
(sử dụng hàm thiết lập 5 tham số), hiển thị thông tin củap
ra màn hình. - Nhập vào một mảng gồm
n
vận động viên. - Hiển thị danh sách đã nhập ra màn hình.
- Sắp xếp mảng đã nhập theo thứ tự tăng dần, hiển thị danh sách đã sắp ra màn hình.
Lời Giải:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include
using
namespace
std
;
class
VanDongVien
{
protected
:
string
hoten
,
monthidau
;
int
tuoi
;
float
cannang
,
chieucao
;
public
:
VanDongVien
(
)
{
this
–
>
hoten
=
this
–
>
monthidau
=
“”
;
this
–
>
tuoi
=
0
;
this
–
>
cannang
=
this
–
>
chieucao
=
0
;
}
VanDongVien
(
string
hoten
,
string
monthidau
,
int
tuoi
,
float
cannang
,
float
chieucao
)
{
this
–
>
hoten
=
hoten
;
this
–
>
monthidau
=
monthidau
;
this
–
>
tuoi
=
tuoi
;
this
–
>
cannang
=
cannang
;
this
–
>
chieucao
=
chieucao
;
}
~
VanDongVien
(
)
{
this
–
>
hoten
=
this
–
>
monthidau
=
“”
;
this
–
>
tuoi
=
0
;
this
–
>
cannang
=
this
–
>
chieucao
=
0
;
}
//———————————————-//
friend
istream
&operator>>(istream &is, VanDongVien &obj)
{
cin.ignore();
cout
<
<
“Nhap Ho Ten: “
;
fflush
(
stdin
)
;
getline
(
is
,
obj
.
hoten
)
;
cout
<
<
“Nhap Mon Thi Dau: “
;
fflush
(
stdin
)
;
getline
(
is
,
obj
.
monthidau
)
;
cout
<
<
“Nhap Tuoi: “
;
is
>
>
obj
.
tuoi
;
cout
<
<
“Nhap Can Nang: “
;
is
>
>
obj
.
cannang
;
cout
<
<
“Nhap Chieu Cao: “
;
is
>
>
obj
.
chieucao
;
return
is
;
}
friend
ostream
&operator<<(ostream &os, VanDongVien obj)
{
cout << "Ho Ten: " << obj.hoten << endl;
cout
<
<
“Mon Thi Dau: “
<
<
obj
.
monthidau
<
<
endl
;
cout
<
<
“Tuoi: “
<
<
obj
.
tuoi
<
<
endl
;
cout
<
<
“Can Nang: “
<
<
obj
.
cannang
<
<
endl
;
cout
<
<
“Chieu cao: “
<
<
obj
.
chieucao
<
<
endl
;
return
os
;
}
bool
operator
>
(
const
VanDongVien
&obj)
{
if (this->chieucao > obj.chieucao)
return true;
else
if
(
this
–
>
chieucao
<
obj
.
chieucao
)
return
false
;
else
if
(
this
–
>
cannang
>
obj
.
cannang
)
return
true
;
else
return
false
;
}
}
;
void
swap
(
VanDongVien
&a, VanDongVien &b)
{
VanDongVien temp = a;
a
=
b
;
b
=
temp
;
}
void
Bubblesort
(
VanDongVien
arr
[
]
,
int
n
)
{
for
(
int
i
=
0
;
i
<
n
–
1
;
i
++
)
for
(
int
j
=
0
;
j
<
n
–
i
–
1
;
j
++
)
if
(
arr
[
j
]
>
arr
[
j
+
1
]
)
swap
(
arr
[
j
]
,
arr
[
j
+
1
]
)
;
}
int
main
(
)
{
VanDongVien
p
(
“Nguyen Van A”
,
“Bong Da”
,
20
,
178
,
70.5
)
;
cout
<
<
p
;
cout
<
<
“Nhap So Luong: “
;
int
n
;
cin
>
>
n
;
VanDongVien *
arr
=
new
VanDongVien
[
n
]
;
for
(
int
i
=
0
;
i
<
n
;
++
i
)
cin
>
>
arr
[
i
]
;
cout
<
<
endl
<
<
endl
;
for
(
int
i
=
0
;
i
<
n
;
++
i
)
cout
<
<
arr
[
i
]
<
<
endl
;
cout
<
<
“Sort”
<
<
endl
;
Bubblesort
(
arr
,
n
)
;
for
(
int
i
=
0
;
i
<
n
;
++
i
)
cout
<
<
arr
[
i
]
<
<
endl
;
return
0
;
}
Input
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
3
Nguyen Van B
Cau Long
20
80
190
Nguyen Van C
Bong Chuyen
21
78
188
Nguyen Van D
Boi Loi
19
81
188
Output
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Ho Ten: Nguyen Van A
Mon Thi Dau: Bong Da
Tuoi: 20
Can Nang: 178
Chieu cao: 70.5
Ho Ten: Nguyen Van B
Mon Thi Dau: Cau Long
Tuoi: 20
Can Nang: 80
Chieu cao: 190
Ho Ten: Nguyen Van C
Mon Thi Dau: Bong Chuyen
Tuoi: 21
Can Nang: 78
Chieu cao: 188
Ho Ten: Nguyen Van D
Mon Thi Dau: Boi Loi
Tuoi: 19
Can Nang: 81
Chieu cao: 188
Sort
Ho Ten: Nguyen Van C
Mon Thi Dau: Bong Chuyen
Tuoi: 21
Can Nang: 78
Chieu cao: 188
Ho Ten: Nguyen Van D
Mon Thi Dau: Boi Loi
Tuoi: 19
Can Nang: 81
Chieu cao: 188
Ho Ten: Nguyen Van B
Mon Thi Dau: Cau Long
Tuoi: 20
Can Nang: 80
Chieu cao: 190
Bài Tập OOP nâng cao
Bài Tập quản lý bán vé máy bay
Đề bài
Xây dựng lớp Vemaybay
gồm:
- Thuộc tính:
tenchuyen
,ngaybay
,giave
- Phương thức:
- Cấu tử
- Hủy
- Nhap
- Xuat
getgiave()
: hàm trả về giá vé
Xây dựng lớp Nguoi gồm:
- Thuộc tính:
hoten
,gioitinh
,tuoi
- Phương thức:
- Cấu tử
- Hủy
- Nhập
- Xuất
Xây dựng lớp Hanhkhach
(mỗi hành khách được mua nhiều vé) kế thừa lớp Nguoi
bổ
sung thêm:
- Thuộc tính:
Vemaybay *ve
;int soluong
; - Phương thức:
- Cấu tử
- Hủy
- Nhập
- Xuất
tongtien()
: trả về Tổng số tiền phải trả của hành khách
Chương trình chính: Nhập vào 1 danh sách n hành khách (n nhập từ bàn phím).
Hiển thị danh sách hành khách và số tiền phải trả tương ứng của mỗi khách hàng.
Sắp xếp danh sách hành khách theo chiều giảm dần của Tổng tiền.
Lời Giải
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#include
using
namespace
std
;
class
Date
{
protected
:
int
day
,
month
,
year
;
public
:
Date
(
)
{
this
–
>
day
=
this
–
>
month
=
this
–
>
year
=
0
;
}
~
Date
(
)
{
this
–
>
day
=
this
–
>
month
=
this
–
>
year
=
0
;
}
void
input
(
)
{
cout
<
<
“Nhap Ngay: “
;
cin
>
>
this
–
>
day
;
cout
<
<
“Nhap Thang: “
;
cin
>
>
this
–
>
month
;
cout
<
<
“Nhap Nam: “
;
cin
>
>
this
–
>
year
;
}
void
output
(
)
{
cout
<
<
“Ngay/Thang/Nam: “
<
<
this
–
>
day
<
<
“/”
<
<
this
–
>
month
<
<
“/”
<
<
this
–
>
year
<
<
endl
;
}
}
;
//————————————————————-//
class
Vemaybay
{
protected
:
string
tenchuyen
;
Date
ngaybay
;
int
giave
;
public
:
Vemaybay
(
)
{
this
–
>
tenchuyen
=
“”
;
this
–
>
giave
=
0
;
}
~
Vemaybay
(
)
{
this
–
>
tenchuyen
=
“”
;
this
–
>
giave
=
0
;
}
void
input
(
)
{
cin
.
ignore
(
)
;
cout
<
<
“Nhap Ten Chuyen: “
;
fflush
(
stdin
)
;
getline
(
cin
,
this
–
>
tenchuyen
)
;
cout
<
<
“Nhap Ngay Bay: “
<
<
endl
;
ngaybay
.
input
(
)
;
cout
<
<
“Nhap Gia Ve: “
;
cin
>
>
this
–
>
giave
;
}
void
output
(
)
{
cout
<
<
“Ten Chuyen: “
<
<
this
–
>
tenchuyen
<
<
endl
;
cout
<
<
“Ngay Bay: “
<
<
endl
<
<
“\t”
;
this
–
>
ngaybay
.
output
(
)
;
cout
<
<
“Gia Ve: “
<
<
this
–
>
giave
<
<
endl
;
}
int
getgiave
(
)
{
return
this
–
>
giave
;
}
}
;
class
Nguoi
{
protected
:
string
hoten
,
gioitinh
;
int
tuoi
;
public
:
Nguoi
(
)
{
this
–
>
hoten
=
this
–
>
gioitinh
=
“”
;
this
–
>
tuoi
=
0
;
}
~
Nguoi
(
)
{
this
–
>
hoten
=
this
–
>
gioitinh
=
“”
;
this
–
>
tuoi
=
0
;
}
void
input
(
)
{
cin
.
ignore
(
)
;
cout
<
<
“Nhap Ho Ten: “
;
fflush
(
stdin
)
;
getline
(
cin
,
this
–
>
hoten
)
;
cout
<
<
“Nhap Gioi Tinh: “
;
fflush
(
stdin
)
;
getline
(
cin
,
this
–
>
gioitinh
)
;
cout
<
<
“Nhap Tuoi: “
;
cin
>
>
this
–
>
tuoi
;
}
void
output
(
)
{
cout
<
<
“Ho Ten: “
<
<
this
–
>
hoten
<
<
endl
;
cout
<
<
“Gioi Tinh: “
<
<
this
–
>
gioitinh
<
<
endl
;
cout
<
<
“Tuoi: “
<
<
this
–
>
tuoi
<
<
endl
;
}
}
;
class
Hanhkhach
:
public
Nguoi
{
protected
:
int
soluong
;
//Vemaybay *ve;
Vemaybay
ve
[
1000
]
;
int
tongtien
;
public
:
Hanhkhach
(
)
{
this
–
>
soluong
=
0
;
//this->ve = new Vemaybay[this->soluong];
ve
[
this
–
>
soluong
]
;
tongtien
=
0
;
}
~
Hanhkhach
(
)
{
soluong
=
0
;
delete
[
]
ve
;
tongtien
=
0
;
}
void
input
(
)
{
Nguoi
:
:
input
(
)
;
cout
<
<
“Nhap So Luong Ve Hanh Khach Da Mua: “
;
cin
>
>
this
–
>
soluong
;
//ve = new Vemaybay[this->soluong];
ve
[
this
–
>
soluong
]
;
for
(
int
i
=
0
;
i
<
this
–
>
soluong
;
++
i
)
{
ve
[
i
]
.
input
(
)
;
tongtien
+=
ve
[
i
]
.
getgiave
(
)
;
}
}
void
output
(
)
{
cout
<
<
“- Thong Tin Khach Hang: “
<
<
endl
;
Nguoi
:
:
output
(
)
;
cout
<
<
“- Thong Tin Chuyen Bay: “
<
<
endl
;
for
(
int
i
=
0
;
i
<
this
–
>
soluong
;
++
i
)
{
ve
[
i
]
.
output
(
)
;
cout
<
<
endl
;
}
cout
<
<
“==> Tong Tien = “
<
<
this
–
>
tongtien
;
cout
<
<
endl
;
}
bool
operator
<
(
const
Hanhkhach
&obj)
{
if (this->tongtien < obj.tongtien) return true;
else
return
false
;
}
}
;
//———————————————————-//
void
swap
(
Hanhkhach
&a, Hanhkhach &b)
{
Hanhkhach temp = a;
a
=
b
;
b
=
temp
;
}
void
Bubblesort
(
Hanhkhach
arr
[
]
,
int
n
)
{
for
(
int
i
=
0
;
i
<
n
–
1
;
++
i
)
for
(
int
j
=
0
;
j
<
n
–
i
–
1
;
++
j
)
if
(
arr
[
j
]
<
arr
[
j
+
1
]
)
swap
(
arr
[
j
]
,
arr
[
j
+
1
]
)
;
}
//———————————————————-//
int
main
(
)
{
cout
<
<
“Nhap So Luong Khach Hang: “
;
int
n
;
cin
>
>
n
;
Hanhkhach *
arr
=
new
Hanhkhach
[
n
]
;
for
(
int
i
=
0
;
i
<
n
;
++
i
)
arr
[
i
]
.
input
(
)
;
cout
<
<
endl
<
<
endl
<
<
“Output”
<
<
endl
<
<
endl
;
for
(
int
i
=
0
;
i
<
n
;
++
i
)
{
arr
[
i
]
.
output
(
)
;
cout
<
<
endl
<
<
“——————“
<
<
endl
<
<
endl
;
}
cout
<
<
“After Sort: “
<
<
endl
;
Bubblesort
(
arr
,
n
)
;
for
(
int
i
=
0
;
i
<
n
;
++
i
)
{
arr
[
i
]
.
output
(
)
;
cout
<
<
endl
<
<
“——————“
<
<
endl
<
<
endl
;
}
return
0
;
}
Input
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
3
Nguyen Van A
Nam
20
2
Ha Noi – Hai Phong
10 2 2020
500000
Hai Phong – Ha Noi
15 2 2020
450000
Nguyen Van B
Nam
21
1
Ha Noi – TP.Ho Chi Minh
20 2 2020
1500000
Nguyen Thi C
Nu
19
3
Ha Noi – Da Nang
19 2 2020
1200000
Ha Noi – Hue
18 2 2020
1250000
Hue – Da Nang
22 2 2020
500000
Output
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Output
– Thong Tin Khach Hang:
Ho Ten: Nguyen Van A
Gioi Tinh: Nam
Tuoi: 20
– Thong Tin Chuyen Bay:
Ten Chuyen: Ha Noi – Hai Phong
Ngay Bay:
Ngay/Thang/Nam: 10/2/2020
Gia Ve: 500000
Ten Chuyen: Hai Phong – Ha Noi
Ngay Bay:
Ngay/Thang/Nam: 15/2/2020
Gia Ve: 450000
==> Tong Tien = 950000
——————
– Thong Tin Khach Hang:
Ho Ten: Nguyen Van B
Gioi Tinh: Nam
Tuoi: 21
– Thong Tin Chuyen Bay:
Ten Chuyen: Ha Noi – TP.Ho Chi Minh
Ngay Bay:
Ngay/Thang/Nam: 20/2/2020
Gia Ve: 1500000
==> Tong Tien = 1500000
——————
– Thong Tin Khach Hang:
Ho Ten: Nguyen Thi C
Gioi Tinh: Nu
Tuoi: 19
– Thong Tin Chuyen Bay:
Ten Chuyen: Ha Noi – Da Nang
Ngay Bay:
Ngay/Thang/Nam: 19/2/2020
Gia Ve: 1200000
Ten Chuyen: Ha Noi – Hue
Ngay Bay:
Ngay/Thang/Nam: 18/2/2020
Gia Ve: 1250000
Ten Chuyen: Hue – Da Nang
Ngay Bay:
Ngay/Thang/Nam: 22/2/2020
Gia Ve: 500000
==> Tong Tien = 2950000
——————
After Sort:
– Thong Tin Khach Hang:
Ho Ten: Nguyen Thi C
Gioi Tinh: Nu
Tuoi: 19
– Thong Tin Chuyen Bay:
Ten Chuyen: Ha Noi – Da Nang
Ngay Bay:
Ngay/Thang/Nam: 19/2/2020
Gia Ve: 1200000
Ten Chuyen: Ha Noi – Hue
Ngay Bay:
Ngay/Thang/Nam: 18/2/2020
Gia Ve: 1250000
Ten Chuyen: Hue – Da Nang
Ngay Bay:
Ngay/Thang/Nam: 22/2/2020
Gia Ve: 500000
==> Tong Tien = 2950000
——————
– Thong Tin Khach Hang:
Ho Ten: Nguyen Van B
Gioi Tinh: Nam
Tuoi: 21
– Thong Tin Chuyen Bay:
Ten Chuyen: Ha Noi – TP.Ho Chi Minh
Ngay Bay:
Ngay/Thang/Nam: 20/2/2020
Gia Ve: 1500000
==> Tong Tien = 1500000
——————
– Thong Tin Khach Hang:
Ho Ten: Nguyen Van A
Gioi Tinh: Nam
Tuoi: 20
– Thong Tin Chuyen Bay:
Ten Chuyen: Ha Noi – Hai Phong
Ngay Bay:
Ngay/Thang/Nam: 10/2/2020
Gia Ve: 500000
Ten Chuyen: Hai Phong – Ha Noi
Ngay Bay:
Ngay/Thang/Nam: 15/2/2020
Gia Ve: 450000
==> Tong Tien = 950000
——————
Trong bài tập lập trình hướng đối tượng số 3 này, mình có 1 lưu ý nhỏ.
Nếu không sắp xếp các hành khách theo tổng tiền, thì mình vẫn có thể khai báo ve
là một con trỏ kiểu Vemaybay
, nhưng khi mình thực hiện sắp xếp, mình phải đổi chỗ các ô nhớ chứa hành khách. Nếu vẫn khai báo Vemaybay *ve
, nghĩa là ve
sẽ được lưu trong bộ nhớ chỉ đọc, nên khi đổi chỗ sẽ gây lỗi Segmentation Fault.
Bạn có thể xem thêm về lỗi này tại đây
Bài tổng hợp các bài tập lập trình hướng đối tượng từ cơ bản đến nâng cao của mình đến đây là hết rồi. Cảm ơn tất cả mọi người đã ủng hộ mình trong thời gian qua. Chào mọi người, và có thể sẽ hẹn gặp lại mọi người trong một dịp gần nhất.
Các bạn có thể xem thêm lời giải và các bài tập lập trình hướng đối tượng khác tại:
Học xong lập trình hướng đối tượng chỉ trong 1 giờ cùng Maria Ozawa | Vũ Nguyễn Coder
Lập trình hướng đối tượng (OOP) là kĩ năng tối thiểu cần có của một lập trình viên. Trong bài giảng này sẽ tóm lược hết kiến thức của OOP thông qua ví dụ về Maria Ozawa.
Mục lục
/ Dẫn chuyện /
1:30 Hướng đối tượng là gì
3:00 Class \u0026 Object Khái niệm
/ Class \u0026 Object trong lập trình (C++) /
4:00 Định nghĩa Class \u0026 khởi tạo object
8:59 Thuộc tính
12:04 Phương thức
/ 4 đặc điểm của hướng đối tượng /
23:08 Tính đóng gói
25:00 Tính trừu tượng
32:19 Tính kế thừa
44:17 Tính đa hình
50:50 Một số vấn đề nâng cao
vunguyencoder laptrinh c++
⌛⌛⌛⌛
? Website
https://VuNguyenCoder.com
? Youtube channel
https://youtube.com/VuNguyenCoder
? Facebook
https://fb.com/VuNguyenCoder
? LinkedIn
https://linkedin.com/in/VuNguyenCoder
© Bản quyền thuộc về Vũ Nguyễn Coder
© Copyright by Vũ Nguyễn Coder ☞ Do not Reup