SlideShare a Scribd company logo
1 of 23
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG




                            NIIT.vn
CHƯƠNG II

GIỚI THIỆU VỀ C++




                    NIIT.vn
1. LỊCH SỬ CỦA C++
C++ được xây dựng trên nền của C

       C được phát minh bởi Dennis Ritchie năm 1972



       C dùng để viết hệ điều hành UNIX


       Lịch sử của C và Unix gắn liền với nhau



       UNIX được hoàn thành với C


                                                       NIIT.vn
1. LỊCH SỬ CỦA C++
C++ được đưa ra bởi Bjarne Stroustrup

    Phiên bản đầu tiên ra mắt năm 1980, với tên “C with class”

    Phiên bản thương mại đầu tiên vào năm 1985

    ANSI và ISO đưa ra phiên bản C++ chuẩn



   C++ hỗ trợ lập trình hướng đối tượng
                                                        NIIT.vn
1. LỊCH SỬ CỦA C++

Ưu điểm:

     Được sử dụng rộng rãi

     Là sự mở rộng của C

     Hỗ trợ lập trình hướng đối tượng

     Có nhiều thư viện mẫu chuẩn STL

                                         NIIT.vn
2. MỞ RỘNG CỦA C++
Một số mở rộng của C++ so với C:
   Lời chú thích             Hàm đa năng

   Từ khóa mới               Toán tử đa năng

   Dữ liệu, khai báo biến
                              Hàm nội tuyến
   Chuyển kiểu
                              Toán tử phạm vi
   Nhập xuất
                              Con trỏ this
   Cấp phát bộ nhớ

   Biến, Hằng tham chiếu
                                                 NIIT.vn
2.1. LỜI CHÚ THÍCH
Có hai cách chú thích:

 Cách 1: /* ..*/

   Ví dụ: /* chú thích trên
               nhiều dòng*/

  Cách 2: // (chú thích của C)

   Ví dụ: // Chú thích trên một dòng

                                       NIIT.vn
2.2. TỪ KHÓA MỚI

Một số từ khóa mới:

                  delete        catch          class
                  new           friend         inline
                  protected     operator       private
                  this          public         template
                  virtual       throw          try


• Nếu trong chương trình viết bằng C có tên trùng  thay đổi lại


                                                                   NIIT.vn
2.3. KIỂU DỮ LIỆU CHAR VÀ INT
+ Dữ liệu kiểu char:
   sizeof(„A‟)=sizeof(int)=2
    sizeof(„A‟)=sizeof(char)=1
    Trong C hằng kí tự có kiểu int 2 byte

     Trong C++ hằng kí tự có kiểu char 1 byte

+ Dữ liệu kiểu Boolean: bool


                                                NIIT.vn
2.4. KHAI BÁO BIẾN

C++ cho phép khai báo biến:

   Tại bất cứ đâu (cho phép khai báo biến trong vòng lập for)


   Trước khi sử dụng


  Có hiệu lực trong phạm vi chương trình kể từ vị trí nó xuất hiện



                                                           NIIT.vn
2.5. CHUYỂN ĐỔI VÀ ÉP KIỂU
C++ cho phép chuyển kiểu rộng rãi:

   1. Khi gán giá trị số vào biến kiểu khác

   2. Các kiểu số khác nhau trong cùng 1 biểu thức


  Ép kiểu kiểu cũ: myInt = (int) myFloat

  Ép kiểu kiểu mới: myInt = int (myFloat)


                                                     NIIT.vn
2.6. NHẬP XUẤT TRONG C++

Dòng xuất, nhập dữ liệu:

 Cú pháp:
    cout<<bt1<<…<<btn;

    cin>>biến1>>biến..>>biếnn;

  Chú ý:
           Phải khai báo #include <iostream.h>
           Dùng cin.ignore(1) để bỏ kí tự ‘n’

                                                 NIIT.vn
2.7. CẤP PHÁT VÀ GIẢI PHÓNG BỘ NHỚ

Vẫn có thể dùng hàm malloc(), calloc(), free()

   C++ sử dụng thêm hai toán tử:

    new: để cấp phát bộ nhớ
           Cú pháp: new tên_kiểu

    delete: để giải phóng bộ nhớ

            Cú pháp: delete con_trỏ

                                           NIIT.vn
2.8. BIẾN THAM CHIẾU
Khái niệm:
- Giống như một bí danh của biến khác
- Cho phép hàm thao tác trực tiếp trên biến được truyền

 Cú pháp: Kiểu &Biếnthamchiếu = Biến;

 Ví dụ: int a, &x=a;
        x=1; // a=1
        cout<<x; //in ra số 1
        x++; //a=2
                                                          NIIT.vn
        a++; //a=3
2.9. HẰNG THAM CHIẾU
Cú pháp:

  const Kiểu &hằngthamchiếu = Biến(hằng);

  Ví dụ: int n=10;

       const int &m = n;




                                            NIIT.vn
2.10. HÀM ĐA NĂNG - OVERLOADING


 Là các hàm có cùng tên nhưng đối số khác nhau

 Khi gặp hàm này, trình biên dịch gọi hàm dựa vào:

  - Số lượng đối số
  - Kiểu của đối số



                                               NIIT.vn
2.11. TOÁN TỬ ĐA NĂNG
- Các toán tử có thể được đa năng hóa
       +      -     *     /     %       ^             &      |

       ~      !     =     <     >       +=            -=    *=

       /=    %=     ^=   &=     |=      <<        >>       >>=

      <<=    ==     !=   <=     >=      &&            ||    ++

       --    ->*    ,     ->    []      ()        new      delete


 - Các toán tử không thể đa năng hóa

              .     .*    ::    ?:           Sizeof

                                                                    NIIT.vn
2.12. HÀM NỘI TUYẾN - INLINE

   Là hàm sẽ được chèn trực tiếp tại các lời gọi hàm
   Có tác dụng giảm không gian bộ nhớ mà các hàm nhỏ chiếm chỗ,
    đồng thời cho phép các kỹ thuật tối ưu hóa
   Ví dụ:
        inline int max (int a, int b)
                { if (a > b) return a;
                 else return b; }
        a = max (x, y); // hiện tương đương với "a = (x > y ? x : y);"


                                                             NIIT.vn
2.13. TOÁN TỬ PHẠM VI ::


   Là toán tử xác định hàm thành viên của một lớp, được xây
    dựng bên ngoài lớp;
   Cú pháp: Kiểu_trả_về Tên_lớp :: Tên_hàm(đốisố1, đốisố2...)

   Dùng để tham chiếu đến các biến toàn cục trong trường hợp
    biến toàn cục và biến cục bộ trùng tên
   Cú pháp: ::tên_biến_toàn_cục



                                                         NIIT.vn
2.14. CON TRỎ THIS
   Con trỏ this trỏ tới địa chỉ của đối tượng, qua this ta có
    thể truy cập các thành viên;
   Ta dùng this và toán tử -> để truy cập đến các thành viên
    của đối tượng ;
   Ví dụ:
           this->age;
           this->getdata();



                                                      NIIT.vn
BÀI TẬP
  1. Nhập ma trận thực cấp mxn:
-    Tìm phần tử lớn nhất
-    Sắp xếp tăng dần
-    In ma trận sau khi đã sắp xếp
  2. Tính:
                      2         n
              x      x         x
          S 1             ...
              2      3        n 1
3. Xây dựng chương trình thao tác với phân số: nhập,
    in, tối giản, cộng, tích hai phân số
                                               NIIT.vn
BẠN ĐÃ HIỂU VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG?

 Bạn đã biết cần phải làm gì?




                                   NIIT.vn
GIẢI ĐÁP
 Mọi thắc mắc sẽ được giải đáp trong
 khóa học LẬP TRÌNH WEB VỚI
 JAVA/JSP/SERVLET tại Học viện NIIT
 INET




      Liên hệ: 0904 840 550 (Ms Mai)
      Email: maintn@inet.vn            NIIT.vn

More Related Content

What's hot

Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Minh Ngoc Tran
 
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09aPplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09aPix Nhox
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uXephang Daihoc
 
Phần 8: Mảng hai chiều
Phần 8: Mảng hai chiềuPhần 8: Mảng hai chiều
Phần 8: Mảng hai chiềuHuy Rùa
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPix Nhox
 
Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoMinh Ngoc Tran
 
Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Huy Rùa
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trìnhLê Định
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trìnhLê Định
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Thanh Minh Hoang
 
Phần 6: Hàm
Phần 6: HàmPhần 6: Hàm
Phần 6: HàmHuy Rùa
 
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09aPplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09aPix Nhox
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiHuynh MVT
 

What's hot (19)

Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-
 
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09aPplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4u
 
Phần 8: Mảng hai chiều
Phần 8: Mảng hai chiềuPhần 8: Mảng hai chiều
Phần 8: Mảng hai chiều
 
Mang1 chieu
Mang1 chieuMang1 chieu
Mang1 chieu
 
Chuong 4
Chuong 4Chuong 4
Chuong 4
 
Nmlt c11 con_trocoban
Nmlt c11 con_trocobanNmlt c11 con_trocoban
Nmlt c11 con_trocoban
 
Nmlt c07 mang1_chieu
Nmlt c07 mang1_chieuNmlt c07 mang1_chieu
Nmlt c07 mang1_chieu
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09a
 
Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucoso
 
Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)Phần 12: Hàm (Nâng cao)
Phần 12: Hàm (Nâng cao)
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trình
 
Các kiểu Lập trình
Các kiểu Lập trìnhCác kiểu Lập trình
Các kiểu Lập trình
 
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
Một số vấn đề thường gặp trong lập trình - Đăng Bình Phương (ĐH KHTN)
 
Phần 6: Hàm
Phần 6: HàmPhần 6: Hàm
Phần 6: Hàm
 
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09aPplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
Pplthdt c03 kieu_dulieucoso_lopdungsan_v13.09a
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansi
 
Chuong3 c
Chuong3 c Chuong3 c
Chuong3 c
 
Chapter 6
Chapter 6Chapter 6
Chapter 6
 

Viewers also liked

Những kỹ năng cần có để trở thành nhà quản lý dự án chuyên nghiệp
Những kỹ năng cần có để trở thành nhà quản lý dự án chuyên nghiệpNhững kỹ năng cần có để trở thành nhà quản lý dự án chuyên nghiệp
Những kỹ năng cần có để trở thành nhà quản lý dự án chuyên nghiệpHọc viện đào tạo CNTT NIIT iNET
 
Lap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in JavaLap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in Javavdlinh08
 
OOP in Java - Ver1.1
OOP in Java -  Ver1.1OOP in Java -  Ver1.1
OOP in Java - Ver1.1vdlinh08
 
Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7vdlinh08
 
6 he thong xuat nhap
6 he thong xuat nhap6 he thong xuat nhap
6 he thong xuat nhapLy hai
 
BGKTMT Ch1 giới thiệu chung
BGKTMT Ch1 giới thiệu chungBGKTMT Ch1 giới thiệu chung
BGKTMT Ch1 giới thiệu chungCao Toa
 
Giao trinh thuc hanh - Delphi 7
Giao trinh thuc hanh - Delphi 7Giao trinh thuc hanh - Delphi 7
Giao trinh thuc hanh - Delphi 7vdlinh08
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTMasterCode.vn
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTMasterCode.vn
 
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPTBài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPTMasterCode.vn
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTMasterCode.vn
 
Căn nhà màu tím
Căn nhà màu tímCăn nhà màu tím
Căn nhà màu tímTrần Kỳ
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTMasterCode.vn
 

Viewers also liked (20)

Những kỹ năng cần có để trở thành nhà quản lý dự án chuyên nghiệp
Những kỹ năng cần có để trở thành nhà quản lý dự án chuyên nghiệpNhững kỹ năng cần có để trở thành nhà quản lý dự án chuyên nghiệp
Những kỹ năng cần có để trở thành nhà quản lý dự án chuyên nghiệp
 
Lập trình hướng đối tượng - p3
Lập trình hướng đối tượng - p3Lập trình hướng đối tượng - p3
Lập trình hướng đối tượng - p3
 
Tại sao nên chọn ngôn ngữ php
Tại sao nên chọn ngôn ngữ phpTại sao nên chọn ngôn ngữ php
Tại sao nên chọn ngôn ngữ php
 
Những con số thú vị về hệ điều hành android
Những con số thú vị về hệ điều hành androidNhững con số thú vị về hệ điều hành android
Những con số thú vị về hệ điều hành android
 
Tin hoc dai cuong
Tin hoc dai cuongTin hoc dai cuong
Tin hoc dai cuong
 
Lap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in JavaLap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in Java
 
OOP in Java - Ver1.1
OOP in Java -  Ver1.1OOP in Java -  Ver1.1
OOP in Java - Ver1.1
 
Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7
 
6 he thong xuat nhap
6 he thong xuat nhap6 he thong xuat nhap
6 he thong xuat nhap
 
BGKTMT Ch1 giới thiệu chung
BGKTMT Ch1 giới thiệu chungBGKTMT Ch1 giới thiệu chung
BGKTMT Ch1 giới thiệu chung
 
Giao trinh thuc hanh - Delphi 7
Giao trinh thuc hanh - Delphi 7Giao trinh thuc hanh - Delphi 7
Giao trinh thuc hanh - Delphi 7
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
 
Lap trinh android – kiem tien ngay trong khi hoc
Lap trinh android – kiem tien ngay trong khi hocLap trinh android – kiem tien ngay trong khi hoc
Lap trinh android – kiem tien ngay trong khi hoc
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
 
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPTBài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
 
Căn nhà màu tím
Căn nhà màu tímCăn nhà màu tím
Căn nhà màu tím
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
 

Similar to Lập trình hướng đối tượng - p2

Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituongMinh Ngoc Tran
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Văn Dũng
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbDũng Đinh
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.commai_non
 
OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfssuserd01a5c
 
C cho 8051
C cho 8051C cho 8051
C cho 8051Nhan Bui
 
lap trinh c Phan2 chuong5
 lap trinh c Phan2 chuong5 lap trinh c Phan2 chuong5
lap trinh c Phan2 chuong5thanhyu
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗipnanhvn
 
Bai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBrand Xanh
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượngHưởng Nguyễn
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1htpsccbb159
 
Lập trình C cho VĐK 8051
Lập trình C cho VĐK 8051Lập trình C cho VĐK 8051
Lập trình C cho VĐK 8051Mr Giap
 
Pdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnPdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnMasterCode.vn
 

Similar to Lập trình hướng đối tượng - p2 (20)

Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
 
Phạm văn ất
Phạm văn ấtPhạm văn ất
Phạm văn ất
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
 
OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdf
 
C cho 8051
C cho 8051C cho 8051
C cho 8051
 
lap trinh c Phan2 chuong5
 lap trinh c Phan2 chuong5 lap trinh c Phan2 chuong5
lap trinh c Phan2 chuong5
 
Huong doi tuong
Huong doi tuongHuong doi tuong
Huong doi tuong
 
Hàm và Chuỗi
Hàm và ChuỗiHàm và Chuỗi
Hàm và Chuỗi
 
Bai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tu
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượng
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
Lập trình C cho VĐK 8051
Lập trình C cho VĐK 8051Lập trình C cho VĐK 8051
Lập trình C cho VĐK 8051
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Pdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnPdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vn
 
Giáo trình c#
Giáo trình c#Giáo trình c#
Giáo trình c#
 

Lập trình hướng đối tượng - p2

  • 1. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NIIT.vn
  • 2. CHƯƠNG II GIỚI THIỆU VỀ C++ NIIT.vn
  • 3. 1. LỊCH SỬ CỦA C++ C++ được xây dựng trên nền của C  C được phát minh bởi Dennis Ritchie năm 1972  C dùng để viết hệ điều hành UNIX  Lịch sử của C và Unix gắn liền với nhau  UNIX được hoàn thành với C NIIT.vn
  • 4. 1. LỊCH SỬ CỦA C++ C++ được đưa ra bởi Bjarne Stroustrup  Phiên bản đầu tiên ra mắt năm 1980, với tên “C with class”  Phiên bản thương mại đầu tiên vào năm 1985  ANSI và ISO đưa ra phiên bản C++ chuẩn  C++ hỗ trợ lập trình hướng đối tượng NIIT.vn
  • 5. 1. LỊCH SỬ CỦA C++ Ưu điểm:  Được sử dụng rộng rãi  Là sự mở rộng của C  Hỗ trợ lập trình hướng đối tượng  Có nhiều thư viện mẫu chuẩn STL NIIT.vn
  • 6. 2. MỞ RỘNG CỦA C++ Một số mở rộng của C++ so với C:  Lời chú thích  Hàm đa năng  Từ khóa mới  Toán tử đa năng  Dữ liệu, khai báo biến  Hàm nội tuyến  Chuyển kiểu  Toán tử phạm vi  Nhập xuất  Con trỏ this  Cấp phát bộ nhớ  Biến, Hằng tham chiếu NIIT.vn
  • 7. 2.1. LỜI CHÚ THÍCH Có hai cách chú thích:  Cách 1: /* ..*/ Ví dụ: /* chú thích trên nhiều dòng*/  Cách 2: // (chú thích của C) Ví dụ: // Chú thích trên một dòng NIIT.vn
  • 8. 2.2. TỪ KHÓA MỚI Một số từ khóa mới: delete catch class new friend inline protected operator private this public template virtual throw try • Nếu trong chương trình viết bằng C có tên trùng  thay đổi lại NIIT.vn
  • 9. 2.3. KIỂU DỮ LIỆU CHAR VÀ INT + Dữ liệu kiểu char: sizeof(„A‟)=sizeof(int)=2 sizeof(„A‟)=sizeof(char)=1 Trong C hằng kí tự có kiểu int 2 byte Trong C++ hằng kí tự có kiểu char 1 byte + Dữ liệu kiểu Boolean: bool NIIT.vn
  • 10. 2.4. KHAI BÁO BIẾN C++ cho phép khai báo biến:  Tại bất cứ đâu (cho phép khai báo biến trong vòng lập for)  Trước khi sử dụng Có hiệu lực trong phạm vi chương trình kể từ vị trí nó xuất hiện NIIT.vn
  • 11. 2.5. CHUYỂN ĐỔI VÀ ÉP KIỂU C++ cho phép chuyển kiểu rộng rãi: 1. Khi gán giá trị số vào biến kiểu khác 2. Các kiểu số khác nhau trong cùng 1 biểu thức Ép kiểu kiểu cũ: myInt = (int) myFloat Ép kiểu kiểu mới: myInt = int (myFloat) NIIT.vn
  • 12. 2.6. NHẬP XUẤT TRONG C++ Dòng xuất, nhập dữ liệu: Cú pháp: cout<<bt1<<…<<btn; cin>>biến1>>biến..>>biếnn; Chú ý: Phải khai báo #include <iostream.h> Dùng cin.ignore(1) để bỏ kí tự ‘n’ NIIT.vn
  • 13. 2.7. CẤP PHÁT VÀ GIẢI PHÓNG BỘ NHỚ Vẫn có thể dùng hàm malloc(), calloc(), free() C++ sử dụng thêm hai toán tử:  new: để cấp phát bộ nhớ Cú pháp: new tên_kiểu  delete: để giải phóng bộ nhớ Cú pháp: delete con_trỏ NIIT.vn
  • 14. 2.8. BIẾN THAM CHIẾU Khái niệm: - Giống như một bí danh của biến khác - Cho phép hàm thao tác trực tiếp trên biến được truyền Cú pháp: Kiểu &Biếnthamchiếu = Biến; Ví dụ: int a, &x=a; x=1; // a=1 cout<<x; //in ra số 1 x++; //a=2 NIIT.vn a++; //a=3
  • 15. 2.9. HẰNG THAM CHIẾU Cú pháp: const Kiểu &hằngthamchiếu = Biến(hằng); Ví dụ: int n=10; const int &m = n; NIIT.vn
  • 16. 2.10. HÀM ĐA NĂNG - OVERLOADING  Là các hàm có cùng tên nhưng đối số khác nhau  Khi gặp hàm này, trình biên dịch gọi hàm dựa vào: - Số lượng đối số - Kiểu của đối số NIIT.vn
  • 17. 2.11. TOÁN TỬ ĐA NĂNG - Các toán tử có thể được đa năng hóa + - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |= << >> >>= <<= == != <= >= && || ++ -- ->* , -> [] () new delete - Các toán tử không thể đa năng hóa . .* :: ?: Sizeof NIIT.vn
  • 18. 2.12. HÀM NỘI TUYẾN - INLINE  Là hàm sẽ được chèn trực tiếp tại các lời gọi hàm  Có tác dụng giảm không gian bộ nhớ mà các hàm nhỏ chiếm chỗ, đồng thời cho phép các kỹ thuật tối ưu hóa  Ví dụ: inline int max (int a, int b) { if (a > b) return a; else return b; } a = max (x, y); // hiện tương đương với "a = (x > y ? x : y);" NIIT.vn
  • 19. 2.13. TOÁN TỬ PHẠM VI ::  Là toán tử xác định hàm thành viên của một lớp, được xây dựng bên ngoài lớp;  Cú pháp: Kiểu_trả_về Tên_lớp :: Tên_hàm(đốisố1, đốisố2...)  Dùng để tham chiếu đến các biến toàn cục trong trường hợp biến toàn cục và biến cục bộ trùng tên  Cú pháp: ::tên_biến_toàn_cục NIIT.vn
  • 20. 2.14. CON TRỎ THIS  Con trỏ this trỏ tới địa chỉ của đối tượng, qua this ta có thể truy cập các thành viên;  Ta dùng this và toán tử -> để truy cập đến các thành viên của đối tượng ;  Ví dụ: this->age; this->getdata(); NIIT.vn
  • 21. BÀI TẬP 1. Nhập ma trận thực cấp mxn: - Tìm phần tử lớn nhất - Sắp xếp tăng dần - In ma trận sau khi đã sắp xếp 2. Tính: 2 n x x x S 1 ... 2 3 n 1 3. Xây dựng chương trình thao tác với phân số: nhập, in, tối giản, cộng, tích hai phân số NIIT.vn
  • 22. BẠN ĐÃ HIỂU VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG? Bạn đã biết cần phải làm gì? NIIT.vn
  • 23. GIẢI ĐÁP Mọi thắc mắc sẽ được giải đáp trong khóa học LẬP TRÌNH WEB VỚI JAVA/JSP/SERVLET tại Học viện NIIT INET Liên hệ: 0904 840 550 (Ms Mai) Email: maintn@inet.vn NIIT.vn