1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu lập trình C tiếng Việt Tong ket

18 395 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 550,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình hướng đối tượngBài 12: Tổng kết LTHĐT với C++... Nội dung• Lập trình hướng đối tượng • C++ và các đặc điểm • Một số thư viện • Visual studio... Lập trình hướng đối tượngXây dựn

Trang 1

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

Bài 12: Tổng kết LTHĐT với C++

Trang 2

Nội dung

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

• C++ và các đặc điểm

• Một số thư viện

• Visual studio

Trang 3

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

Xây dựng chương trình bằng cách xây

dựng các đối tượng và thiết lập sự cộng

tác của chúng.

Trang 4

Các nguyên tắc cơ bản

• Trừu tượng hóa

– Nguyên tắc chế ngự sự phức tạp

– Tập trung vào các yếu tố chính, bỏ qua các yếu tố

không liên quan

• Đóng gói

– Ẩn giấu chi tiết thể hiện

– Đóng gói dữ liệu và hành vi cùng nhau

• Phân cấp

– Xây dựng các đối tượng mới bằng cách tham

chiếu hoặc mở rộng các đối tượng khác

Trang 5

Các khái niệm chính

• Lớp

• Đối tượng

• Giao diện

• Thừa kế

• Đa hình

Class: Order

orderNum AS INT custNum AS INT CalculateTotalPrice( )

PUBLIC:

CreateOrder( ) UpdateOrder( ) GetOrderTotal( ) Next( )

Interface: IList

PUBLIC:

Next( )

Trang 6

C++ và các đặc điểm

Thiết lập, hủy bỏ, thiết lập copy, gán,

viết chồng toán tử, khuôn hình

Trang 7

• Ngôn ngữ

• Thư viện

• String

• Regular Expression

• I/O Stream

• Smart Pointer

• Exception

• Mathematical Utilities

• Time Utilities

• Random Number

• Initializer List

• Pair và Tuple

• Function Object

• Multithreading

• Type Trait

• Standard Template

Library

– STL Containers – STL Algorithms http://en.cppreference.com/w/

Trang 8

C++ các đặc điểm cơ bản

• Lớp, đối tượng, thừa kế, đa hình, viết chồng toán tử

• Thuộc tính truy cập: private, protected, public

• Phương thức ảo, thuần ảo

• Lớp trừu tượng

• Đơn thừa kế, đa thừa kế

• Phương thức thiết lập, phương thức hủy bỏ

• Thiết lập copy, move

• Gán và gán move

• Dữ liệu, phương thức tĩnh

• Khuôn hình hàm, khuôn hình lớp

Trang 9

Move constructor

#include <cstring>

#include <algorithm>

string( const char * p){

data = new char [size];

memcpy(data, p, size);

}

~string(){

}

string( const string& that){

data = new char [size];

memcpy(data, that.data, size);

}

string a(x); // Line 1

string b(x + y); // Line 2

string c(some_function_returning_a

_string()); // Line 3

string(string&& that) // string&&

is an rvalue reference to a string

{ data = that.data;

that.data = nullptr ; }

Trang 10

Một số đặc điểm mới trong C++ 11

• Biểu thức Lambda (hàm vô danh)

[capture](parameters)->return-type {body}

int main()

{

char s[]="Hello World!";

int Uppercase = 0; //modified by the lambda

for_each(s, s+sizeof(s), [&Uppercase] (char c) {

if (isupper(c))

Uppercase++;

});

cout<< Uppercase<<" uppercase letters in: "<< s<<endl;

}

Các kiểu capture [], [=],[&],

[=,&a],[this]

Trang 11

• Từ khóa auto và decltype

auto x=0; //x has type int because 0 is int

auto c='a'; //char

auto d=0.5; //double

auto national_debt=14400000000000LL;//long long

void func(const vector<int> &vi){

vector<int>::const_iterator ci=vi.begin();

}

auto ci=vi.begin();

const vector<int> vi;

typedef decltype (vi.begin()) CIT;

CIT another_const_iterator;

Trang 12

// C++11 container initializer

vector<string> vs={ "first", "second", "third"};

map singers =

• Cú pháp khởi tạo đồng nhất

std::string s("hello");

int m=int(); //default initialization

std::string s="hello";

int x=5;

int arr[4]={0,1,2,3};

struct tm today={0};

struct S {

int x;

S(): x(0) {} }

class C{

int a;

int b;

public:

C(int i, int j);

};

C c {0,0}; //C++11 only Equivalent to: C c(0,0); int* a = new int[3] { 1, 2, 0 }; /C++11 only

class X { int a[4];

public:

X() : a{1,2,3,4} {} //C++11, member array init };

class C{

int a=7; //C++11 only

Trang 13

• Hàm default và delete

struct A {

A()=default; //C++11

virtual ~A()=default; //C++11

};

int func()=delete;

• Con trỏ nullptr

void f(int); //#1

void f(char *);//#2

//C++03

f(0); //which f is called?

//C++11

f(nullptr) //unambiguous, calls #2

const char *pc=str.c_str(); //data pointers

if (pc!=nullptr) cout<<pc<<endl;

int (A::*pmf)()=nullptr; //pointer to member function

void (*pmf)()=nullptr; //pointer to function

Trang 14

Một số thư viện

Boost, CGAL, QT, SOCI, EIGEN

Trang 15

Thư viện lớn, hỗ trợ nhiều khía cạnh lập trình C++ Phiên bản hiện tại: 1.59.0

http://boost.org

Thư viện các cấu trúc và thuật toán hình học Phiên bản hiện tại: 4.7

http://cgal.org

http://soci.sourceforge.net/

Khung ứng dụng c++ đa nền tảng Phiên bản hiện tại: 5.5.0

http://qt.io

Thư viện truy cập cơ sở dữ liệu Phiên bản hiện tại: 3.2

Trang 16

Visual studio

Môi trường phát triển ứng dụng

Trang 17

Cấu hình, kiến trúc

• Cấu hình Debug hay Release

• Kiến trúc x86 hay x64

Trang 18

Compile và link

Ngày đăng: 28/03/2016, 01:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm