Ch
Ch
−¬
−¬
ng
ng
1
1
T
T
æ
æ
ng
ng
quan vÒ
quan vÒ
ng
ng
«
«
n
n
ng
ng
÷
÷
l
l
Ë
Ë
p
p
tr
tr
×
×
nh
nh
C
C
++
++
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
2
1.1 Gi
1.1 Gi
í
í
i
i
thi
thi
Ö
Ö
u chung vÒ
u chung vÒ
C++
C++
1.1.1 Lch s hình thành và phát trin
– u nhng nm 70, ti phòng thí nghim Bell Telephone
(thuc công ty vin thông AT&T, Hoa K):
• Nhu cu phát trin h điu hành UNIX å cn ngôn ng thay th
cho hp ng (assembly).
• Dennis M. Ritchie đã đ xut ra ngôn ng C :
– BCPL,Martin Richards
å
B, Ken Thompsons, 1970.
– ALGOL 68.
– 1972, C chính thc ra đi, Brian W. Kernighan và Dennis.
M. Ritchie cùng xây dng và phát trin.
– 1978, xut bn "The C Programming Language“.
– 1988, chunANSI Cchính thc đc ban hành.
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
3
1.1 Gi
1.1 Gi
í
í
i
i
thi
thi
Ö
Ö
u chung vÒ
u chung vÒ
C++
C++
1.1.1 Lch s hình thành và phát trin
– u nhng nm 80, cng ti Bell Telephone:
• Bjarne Stroustrup phát trin, b sung C å ngôn ng hng đi
tng: “C vi các lp”.
– SIMULA 66, SmallTalk 71.
• 1983, đi tên thành C++.
– Chính thc công b phiên bn đu tiên ca C++ vào nm
1986. Kí hiu ++:
• Mt s kh nng m rng so viC.
• Kh nng lp trình hng đi tng.
– C++ vn liên tc đc ci thin và hoàn chnh.
• 1.0 å 1.1 (1986), 2.0 (1989) và 3.0 (1991).
• Chun mi nht cho C++ là ISO/IEC 14882:2002.
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
4
1.1 Gi
1.1 Gi
í
í
i
i
thi
thi
Ö
Ö
u chung vÒ
u chung vÒ
C++
C++
1.1.2 c đim ngôn ng
– C: lp trình chuyên nghip!
• Không cung cp c ch vào/ra, không có phng pháp truy nhp
tp tin (đc thc hin bng cách gi hàm trong th vin).
• Cpphát b nh:ch cp phát tnh/đng theo nguyên tc xp
chng cho bin cc b.
• Phmvivàcp lu tr, con tr và đa ch, … có nhng đim đc
trng và mnh m.
– Mnh: trung gian gia các ngôn ng bc cao - bc thp
– Mm do: t do?
• Mc đ mm do: PASCAL, Algol 68 å C å PL/I. (tng dn!)
– Hiuqu khi dch ra mã máy: 80-90% Assembly.
– Kh chuyn(d thích nghi): phn cng, h điu hành, …
– Ít t khóa, có cu trúc môđun,
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
5
1.1 Gi
1.1 Gi
í
í
i
i
thi
thi
Ö
Ö
u chung vÒ
u chung vÒ
C++
C++
1.1.2 c đim ngôn ng
– Khuyt đim:
• Th t thc hin mt s phép toán, cú pháp, kí hiu.
• Hi quá t do (đim mnh ?) å lm dng å bt n!
– C++: tha hng tt c đim mnh caC.
– Mt s ci tin
å
tng cng sc mnh cho C.
• Thay đi, thêm mi å phù hp hn.
– Kh nng lp trình hng đi tng.
• u đim ca phng pháp lp trình hng đi tng.
• Lp, đi tng, …
• K tha, đóng gói, …
– Là ngôn ng lai : <> SmallTalk, Java, …
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
6
1.1 Gi
1.1 Gi
í
í
i
i
thi
thi
Ö
Ö
u chung vÒ
u chung vÒ
C++
C++
1.1.3 Trình biên dch
– Trình dch C :
• Ban đu là các trình dch theo ch đ dòng lnh.
• Sau đó: Turbo C, Microsoft C, Quick C, Think C, …
• Môi trng phát trin tích hp.
• 1987, Turbo C vi môi trng tích hp bt đu thông dng VN, đc
bit là phiên bn 2.0.
– Trình dch C++ :
• 1988, Zortech cung cp trình dch theo ch đ dòng lnh.
• Sau đó: Borland, Microsoft, HP, Compaq, IBM, Intel, Sun, …
– Trình dch ngày nay: IDE, trc quan, …
• Borland: C++ Builder vi VCL. Hin nay là phiên bn 6.0.
• Microsoft: VC++ vi MFC. Hin nay là phiên bn 6.0.
• Công ngh .NET: C++.NET, C#.NET.
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
7
1.2 C
1.2 C
++
++
trong l
trong l
Ë
Ë
p tr
p tr
×
×
nh th
nh th
ñ
ñ
tôc
tôc
v
v
µ
µ
l
l
Ë
Ë
p tr
p tr
×
×
nh
nh
h
h
−
−
í
í
ng
ng
®
®
è
è
i
i
t
t
−
−
î
î
ng
ng
1.2.1 Tng quan v các phng pháp lp trình
– ng dng tin hc đn gin
å
lp trình tun t.
– ng dng phc tp
å
t chc thành các chng trình con
å
lp trình th tc.
• Ngôn ng: FoxPro, Pascal, C/C++, …
• PASCAL: th tc, hàm <> C/C++: hàm.
– H thng ln, nhiu thành phn
å
lp trình hng đi
tng
å
t chc chng trình thành các đi tng.
• Lp: thành phn d liu+hàmå đóng gói.
• Tha k,hàm o, đa hình, đa tha k, …
• Ngôn ng:
• Thun túy hng đi tng: SmallTalk, Java, …
• Ngôn ng lai (s dng đc hàm t do): C++, …
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
8
1.2 C
1.2 C
++
++
trong l
trong l
Ë
Ë
p tr
p tr
×
×
nh th
nh th
ñ
ñ
tôc
tôc
v
v
µ
µ
l
l
Ë
Ë
p tr
p tr
×
×
nh
nh
h
h
−
−
í
í
ng
ng
®
®
è
è
i
i
t
t
−
−
î
î
ng
ng
1.2.2 Chng trình th tc trong C++
– Chng trình ví d:
hello1.cpp
//Program Hello1
#include <stdio.h>
#include <conio.h>
void main()
{
// vit ra màn hình
printf("Hello, World !\n");
getch();
}
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
9
1.2 C
1.2 C
++
++
trong l
trong l
Ë
Ë
p tr
p tr
×
×
nh th
nh th
ñ
ñ
tôc
tôc
v
v
µ
µ
l
l
Ë
Ë
p tr
p tr
×
×
nh
nh
h
h
−
−
í
í
ng
ng
®
®
è
è
i
i
t
t
−
−
î
î
ng
ng
1.2.2 Chng trình th tc trong C++
– Phân tích cu trúc chng trình.
– Thc hin chng trình: (Turbo C++ 3.0, Dev-C++ 5.0, …):
– Son tho.
– G ri.
– Dch, chy, …
– Ghi chú gii thích chng trình:
– // …
– /*…*/
– Khai báo tp tiêu đ: #include.
– C++ btbuc phi khai báo tp tiêu đ nu s dng các hàm trong th
vin tng ng.
– Ckhông bt buc phi khai báo.
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
1.2 C
1.2 C
++
++
trong l
trong l
Ë
Ë
p tr
p tr
×
×
nh th
nh th
ñ
ñ
tôc
tôc
v
v
µ
µ
l
l
Ë
Ë
p tr
p tr
×
×
nh
nh
h
h
−
−
í
í
ng
ng
®
®
è
è
i
i
t
t
−
−
î
î
ng
ng
1.2.2 Chng trình th tc trong C++
– Phân tích cu trúc chng trình (tip).
– Hàm printf():
– D liu và quy cách: %d, %s, %c, …
– Hàm main:
– Khai báo: kiu_giá_tr_tr_v main (tham_s) { mã_lnh }
– Chú ý v hàm main:
– Là đim bt đu trong chng trình (mi chng trình đu phi có).
– Chú ý: trong C hàm main không nht thit phi khai báo kiu giá tr
tr v (trong C++ nu không khai báo kiu giá tr tr v, chng trình
ngm hiu là kiu int, do đóphi có câu lnh return!).
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
1.2 C
1.2 C
++
++
trong l
trong l
Ë
Ë
p tr
p tr
×
×
nh th
nh th
ñ
ñ
tôc
tôc
v
v
µ
µ
l
l
Ë
Ë
p tr
p tr
×
×
nh
nh
h
h
−
−
í
í
ng
ng
®
®
è
è
i
i
t
t
−
−
î
î
ng
ng
1.2.2 Chng trình hng đi tng trong C++
– Chng trình ví d:
hello2.cpp
//Program Hello2
#include <iostream.h>
#include <conio.h>
class Print {
void display() {
cout << "Hello, World !\n";
}
}
void main(){
Print p;
p.display();
getch();
}
Bài ging C++. 14/10/2008
V.S.Nam. B/m KTHT, khoa CNTT, HXD
1.2 C
1.2 C
++
++
trong l
trong l
Ë
Ë
p tr
p tr
×
×
nh th
nh th
ñ
ñ
tôc
tôc
v
v
µ
µ
l
l
Ë
Ë
p tr
p tr
×
×
nh
nh
h
h
−
−
í
í
ng
ng
®
®
è
è
i
i
t
t
−
−
î
î
ng
ng
1.2.2 Chng trình hng đi tng trong C++
– Phân tích cu trúc chng trình.
– Hình thc tng t chng trình th tc.
– Khai báo tp tiêu đ.
– LpPrint.
– nh ngha hàm display.
– i tng cout.
– Khai báo đi tng print ca lpPrint ~binprintca kiuPrint.
– Thc hin hàm display calpprint å
gn hàm vi đi tng.
– óng gói hàm trong lp ≠ cu trúc.
– …