Diễn đàn Arduino Việt Nam | Tôi yêu Việt Nam
Hãy cùng đăng nhập hoặc đăng ký vào diễn đàn để cập nhật những bài viết mới và mở hết chức năng của diễn đàn nào!

Share
Go down
avatar
Administrator
Administrator
Tổng số bài gửi : 184
Points : 508
Reputation : 83
Join date : 20/07/2016
Age : 18
Đến từ : Bến Tre
Xem lý lịch thành viênhttp://vidieukhien-vn.webnode.vn/

Ngôn ngữ C++ là gì ?

on Mon Aug 15, 2016 8:22 pm
Message reputation : 100% (1 vote)
Giới thiệu ngôn ngữ C++
-Ngôn ngữ C++ là ngôn ngữ lập đa mẫu hình tự do có kiểu tĩnh và hỗ trợ lập trình thủ tục, lập trình theo hướng đối tượng. Từ thập niên 1990,C++ đã trở thành một trong những ngôn ngữ phổ biến nhất.Trong suốt thập niên 1980  "C với các lớp" được coi như là một bản nâng cao của ngôn ngữ C.C++ là ngôn ngữ được phát triển trên cơ sở ngôn ngữ C.
Thư viện của C++
-Thư viện chuẩn C++ dùng lại thư viện chuẩn C với một số điều chỉnh nhỏ để giúp nó hoạt động tốt hơn với ngôn ngữ C++.
- Giống như C, các tính năng của thư viện này thì được truy cập bởi việc sử dụng lệnh dẫn hướng #include để bao gồm một tập tin tiêu đề chuẩn. C++ cung ứng 69 tiêu đề chuẩn, trong đó có 19 tiêu đề không còn hiệu lực nữa.
Các chứt năng hướng đối tượng của C++
-C++ dẫn nhập thêm một số chức năng hướng đối tượng (OO) lên C. Nó cung cấp các lớp mà có 4 chức năng thông dụng trong các ngôn ngữ OO: tính trừu tượng, tính bao đóng, tính đa hình, và tính kế thừa.
* Ở đây mình sẽ nói đến tính đa hình trong C++.
- Khái niệm đa hình được dùng khá rộng rãi và là khái niệm bị lạm dụng cũng như không được định nghĩa rõ ràng.
-Trong trường hợp của C++, khái niệm này thường được nối kết với các tên của các hàm thành viên. Các hàm thành viên này có cùng tên, sự khác nhau chỉ có thể được dựa vào một hay cả hai yếu tố sau:

1.Số lượng và kiểu của các đối số (tức là nguyên mẫu của hàm) -- Tính chất này gọi là đa hình tĩnh (static polymorphism)
2.Kiểu lớp mà thực thể thực sự thuộc vào. Tính chất này được dùng khi hàm thành viên được định nghĩa là hàm ảo qua từ khóa virtual—tính chất này gọi là đa hình động (dynamic polymorphism)
-Khi được gọi thì chương trình sẽ tùy theo hai yếu tố trên để xác định chính xác hàm nào phải được thực thi trong số các hàm cùng tên.
-ví dụ như:

Code:

/* Static polymorphism */
 2
 3     extern int SendJobToDevice(PrintJobText *, DeviceLaser *);
 4     extern void SendJobToDevice(PrintJobText *, DeviceJet *);
 5     extern void SendJobToDevice(PrintJobHTML *, DeviceLaser *);
 6     extern void SendJobToDevice(PrintJobHTML *, DeviceJet *);...
 7     SendJobToDevice(printJob, device);
 8
 9     /* Dynamic polymorphism */
10
11     class Device {
12     public:
13       virtual void print(PrintJob*);...
14     };
15
16     PrintJob *printJob;
17     Device *device;...
18     device->print(printJob);
19     // Note that since C++ does not have multiple dispatch, the above
20     // function call is polymorphic based only on the device's type.


Thiết kế của C++

-Bjarne Stroustrup đã miêu tả các quy tắc mà ông ta dùng cho việc thiết kế C++. Biết rõ các quy tắc này sẽ giúp hiểu được tại sao C++ lại đi theo cách riêng của nó. Sau đây là một tổng kết sơ lược của các quy tắc.
+C++ được thiết kế để là một ngôn ngữ tổng quát có kiểu tĩnh mà lại hữu hiệu và năng động như C
+C++ được thiết kế nhằm hỗ trợ trực tiếp và đầy đủ nhiều kiểu lập trình như là lập trình cấu trúc, sự Trừu tượng của dữ liệu, lập trình hướng đối tượng, và lập trình tổng quát.
+C++ được thiết kế để người lập trình có cơ hội lựa chọn ngay cả khi điều này có thể dẫn tới sự chọn lựa sai lầm của người lập trình.
+C++ được thiết kế để tương thích với C càng nhiều càng tốt, do đó, có cung ứng một sự chuyển đổi (ngôn ngữ) rất thuận tiện từ C.
+C++ tránh các chức năng mà chúng thuộc về dặc điểm riêng của nền tảng hay của mục đích chung chung.
+C++ không lệ thuộc vào các phần bổ sung cho các tính năng thừa
+C++ được thiết kế để hoạt động mà không cần phải có môi trường lập trình hoàn thiện.

Các ví dụ về C++
1. ví dụ "Hello world"
-Ví dụ Chào thế giới dùng hàm thư viện chuẩn C++ cout để hiển thị một thông báo và kết thúc chương trình.

Code:

1#include <iostream> // Required for std::cout
2
3  int main()
4  {
5      std::cout << "Hello World!" << std::endl;
6  }

2.Viết theo mẫu hình tiêu bản
-C++ hỗ trợ nhiều mẫu hình lập trình, người lập trình có thể tùy nghi lựa chọn cho mình mẫu hình nào thích hợp hoặc lựa chọn ngay cả việc lập trình dùng đa mẫu hình.
-C++ hiện đại có thể hoàn tất các thao tác khó trong một phương cách đơn giản. Ví dụ sau đây dùng Thư viện Tiêu bản Chuẩn. Đó là thùng chứa map và vector.
-Ví dụ về dùng mẫu lập trình tiêu bản:

Code:

 1#include <iostream>   // std::cout
 2  #include <ostream>    // operator <<
 3  #include <vector>     // std::vector<>
 4  #include <map>        // std::map<> and std::pair<>
 5  #include <algorithm>  // std::for_each()
 6  #include <string>     // std::string
 7
 8  using namespace std; // import "std" namespace into global namespace
 9
10  void display_item_count(pair< string const, vector<string> > const& person)
11  {
12     // person is a pair of two objects: person.first is person's name,
13     // person.second is a list of person's items (vector of strings)
14     cout << person.first << " is carrying "
15          << person.second.size() << " items" << endl;
16  }
17
18  int main()
19  {
20     // Declare a map with string keys and vectors of strings as data
21     map< string, vector<string> > items;
22    
23     // Add some people to the map and let them carry some items
24     items["Anya"].push_back("scarf");
25     items["Dimitri"].push_back("tickets");
26     items["Anya"].push_back("puppy");
27    
28     // Iterate over all the items in the container
29     for_each(items.begin(), items.end(), display_item_count);
30     return 0;
31  }

*Ngoài ra các bạn có thể tham khảo thêm   về C++ tại đây

Hãy cùng mình xây dựng diễn đàn Arduino vững mạnh nào
Về Đầu Trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
Free forum | © phpBB | Free forum support | Liên hệ | Report an abuse | Sosblogs.com