✨Cú pháp ngôn ngữ C++

Cú pháp ngôn ngữ C++

Cú pháp ngôn ngữ C++ là tập hợp các quy tắc nhằm xác định cách thức viết và dịch trong ngôn ngữ lập trình C++.

Vì C++ là ngôn ngữ được thiết kế để có thể hoạt động tương thích với ngôn ngữ C nên hai ngôn ngữ này chia sẻ nhau nhiều điểm chung trong cú pháp. Đối với các cấu trúc câu lệnh thông thường, các hàm, biến, và kiểu dữ liệu cơ bản xin xem thêm bài cú pháp C. Bài này chỉ tập trung vào các chủ đề căn bản mà ngôn ngữ C không có trong đó bao gồm việc hỗ trợ các mẫu hình lập trình tiêu bản và lập trình hướng đối tượng của C++.

Chức năng Hướng đối tượng

Lớp

Định nghĩa lớp cơ bản

Việc sử dụng lớp trong một chương trình C++ có hai phần chính là phần định nghĩa lớp và phần khai báo và truy cập các thành viên của một đối tượng có kiểu là một lớp cho trước.

  • Định nghĩa thông thường của một lớp cơ bản không kế thừa từ bất kì lớp nào khác: class MyClass // tên lớp { public: (danh sách các thành viên có đặc tính công cộng) private: (danh sách các thành viên có đặc tính riêng tư) protected: (danh sách các thành viên có đặc tính bảo tồn) }; // dấu chấm phẩy chấm dứt câu lệnh Lưu ý: khi các từ khoá đặc tính public:, private: protected: không có mặt thì toàn bộ các thành viên của lớp sẽ được hiểu mặc định là có đặc tính riêng tư (_private_). *Dùng khai báo biến myVar làm một thực thể (_instance_) của lớp MyClass:

Định nghĩa lớp con

  • Định nghĩa thông thường của một lớp con kế thừa từ lớp MyClass. Trong thí dụ dưới đây thì [đặc_tính] có thể thay bằng một trong ba từ khoá đặc tính public:, private: protected: hoặc nếu bỏ qua không viết ra thì đặc tính kế thừa mặc định của lớp con sẽ là "riêng tư".

    class MySubClass: [đặc_tính] MyClass { public: (danh sách các thành viên có đặc tính công cộng) private: (danh sách các thành viên có đặc tính riêng tư) protected: (danh sách các thành viên có đặc tính bảo tồn)

    }; // dấu chấm phẩy chấm dứt câu lệnh

  • Định nghĩa thông thường của một lớp con kế thừa từ hai lớp MyClass1MyClass2. Tương tự trên, [đặc_tính] có thể thay bằng một trong ba từ khoá đặc tính public:, private: protected: hoặc nếu bỏ qua không viết ra thì đặc tính kế thưà mặc định của lớp con sẽ là "riêng tư".

    class MySubClass: [đăc_tính] MyClass1, [đăc_tính] MyClass2 { public: (danh sách các thành viên có đặc tính công cộng) private: (danh sách các thành viên có đặc tính riêng tư) protected: (danh sách các thành viên có đặc tính bảo tồn)

    }

Khai báo một biến đối tượng

Biến đối tượng thông thường

Biến đối tượng có thể khai báo hay đôi khi còn gọi là thực thể hoá tùy theo cách xây dựng lớp của người lập trình. Thường quá trình xác lập này được tiến hành thông qua các hàm dựng. Dĩ nhiên, người ta có thể dùng ngay cả các phương thức thường dùng như là dùng tham chiếu (tức là dùng định nghĩa con trỏ), dùng mảng, dùng cấu trúc, hay phức tạp hơn (mảng tham chiếu chẳng hạn) để khai báo một biến đối tượng. (Xem thêm Cú pháp ngôn ngữ C.) Trong mọi trường hợp này thì kiểu của biến đối tượng được xem là lớp mà nó khai báo. Thí dụ:

MyClass A10; //biến thông thường MyClass *A10ptr = new MyClasss; //biến con trỏ &MyClassRef = A10; //biến kiểu tham chiếu (ngược) Lưu ý: người lập trình hoàn toàn có thể thực thể hoá một biến đối tượng mà không cần phải xây dựng một hàm dựng, trình dịch sẽ tự tạo ra một "hàm dựng mặc định". Tuy nhiên, một khi đã xây dựng bất kì một hàm dựng nào thì cách khai báo mặc định này sẽ không còn được trình dịch chấp thuận và sẽ báo lỗi. Thí dụ sau đây thể hiện cách tạo một lớp mà không cần hàm dựng: #include using namespace str; class Number { private: int x; public: void setValue (int y) { x= y;} void getValue () {cout << x << endl;} }; int main () { Number myNumber; myNumber.setValue(4); myNumber.getValue(); return 0; }
Biến đối tượng là một hằng

Trường hợp khi thành lập một đối tượng hằng thì việc điều chỉnh trạng thái nội tại của nó là không hợp lệ do đó, chỉ có một cách duy nhất là gán cho nó một bộ giá trị (hay một trạng thái) ban đầu. Trong trường hợp này thì sau khi đã thực thể hóa, biến đối tượng chỉ có thể cho phép đọc các giá trị nào mà lớp tạo ra nó cho phép. (xem thí dụ)

Các thành viên của lớp

Thành viên dữ liệu

Ngoài các khai cáo thành viên có kiểu dữ liệu như thông thường trong C, thì người lập trình còn có thể khai báo nó như một hằng, hay như một biến tĩnh, hay có cả hai đặc tính: *Thành viên dữ liệu là một hằng: Trương tự như trong C, một thành viên là dữ liệu có thể được khai báo như là một hằng bởi từ khóa const đứng trước tên kiểu dữ liệu. Một khi đã khai báo là hằng thì không thể gán giá trị mới hay thay đổi nội dung của kiểu dữ liệu đó nữa (Lưu ý: trong C++ thì kiểu dữ liệu có thể là một lớp đã được định nghĩa). Do đó, dữ liệu là hằng sẽ được gán giá trị ban đầu ngay trong dòng lệnh khai báo tên của nó:

const int x;

*Thành viên dữ liệu có kiểu static: Một khi thành viên của một lớp có kiểu là static thì nó sẽ có giá trị tĩnh cho mọi thực thể của cùng một lớp. Nghĩa là sự thay đổi giá trị của thành viên tĩnh này trong một thực thể bất kì sẽ có hiệu quả thay đổi của cùng thành viên đó trong các thực thể khác của cùng một lớp. Thực tế, khi một thành viên của một lớp được khai báo tĩnh thì phần bộ nhớ chứa giá trị của thành viên này sẽ được chia sẻ cho mọi thực thể về sau. Nói cách khác, ứng với mỗi thành viên tĩnh, chỉ có duy nhất một giá trị chia sẻ chung cho cả lớp.

===

*Thành viên dữ liệu có thể có cả hai đặc tính trên tức là vừa có kiểu tĩnh vừa là hằng số. Thường từ khóa static được viết trước sau đó là từ khóa const. Thí dụ dưới đây minh họa các cú pháp khai báo. việc sử dụng một biến hằng có kiểu tĩnh rất tiện lợi cho nhiều đối tượng thực thể hóa có cùng một lớp chia sẻ chung một hằng số (thí dụ: hằng số Pi dùng chung cho các đối tượng cung tròn, đường tròn, và elipse). Ngược lại, khi có các hằng số đặc thù cho từng thực thể của một lớp thì một cách là dùng hằng số thông thường (chẳng hạn như cùng một lớp "chiết tính tiền lời cho vay" nhưng thực thể ngắn hạn có "hằng số lãi kép" cao hơn nhiều so với hằng số lãi kép dài hạn). Thí dụ dưới đây minh họa cú pháp khai báo

#include #include

using namespace std;

class A { public: A(int x, int y); void setStatic (int x) { value= x; } //hàm thành viên xác lập trực tiếp trong dòng lệnh khai báo void setNormal (int x) { normal=x; } void setValue(int i) { value = i;} void getValue() const { cout<< "value "<< value << endl;} void getShareConst() const {cout << "shareconst:" << shareconst << endl;} void getPrivate() const; void getNormal() const {cout << "normal variable:" << normal << endl;}

private:
    static int value;
    static const int shareconst;
    const int privateconst;
    int normal;
    };

int A::value=3; //gán giá trị cho biến tĩnh ở đây dùng chung cho mọi hàm của lớp A (=3) const int A::shareconst=2; //gán giá trị cho hằng có kiểu tĩnh A::A(int x, int y):privateconst(y) //Hàm dựng: cách gán giá trị ban đầu cho một hằng thông thường { normal=x; //gán giá trị ban đầu cho biến thông thường }

void A::getPrivate() const //cách để xác lập mã cho hàm thành viên bên ngoài dòng lệnh khai báo của lớp { cout <<"privateconst:" << privateconst << endl; }

int main () { A A1(3,1); // giá trị hằng privateconst của A1 được gán ở đây (=1) A A2(5,2); // giá trị hằng privateconst của A2 được gán ở đây (=2) A1.getPrivate(); A2.getPrivate(); A1.getShareConst(); //đọc giá trị hằng của biến tĩnh trong A1 A2.getShareConst(); //biến tĩnh trong A2 có cùng giá trị với biến tĩnh của A1 A1.setValue(4); //cài đặt cho biến tĩnh value cho đối tượng A1 A2.getValue(); //Cài dặt từ A1 nhưng lại có giá trị luôn cho đối tượng A2

return 0;   

}

Kết quả sau khi dịch và chạy chương trình trên là:
 1
 2
 2
 2
 4
Lưu ý: bạn sẽ không thể gán giá trị nào khác ngoài các giá trị ban đầu khi khai báo cho các hằng. Trong thí dụ trên hàm setValue sẽ cho phép bạn gán lại giá trị tĩnh value của lớp A và nó ảnh hưởng đến mọi thực thể cùng lớp A. Trong khi hàm setNormal cho phép gán lại giá trị cho biến normal thông thường trong một thực thể của lớp A sẽ chỉ hiệu lực cho riêng thực thể đó mà thôi.

Hàm thành viên

Các khai báo một thành viên là hàm trong một lớp có thể dùng hai dạng chính sau:

  • Mô tả trực tiếp trong định nghĩa của lớp mà hàm là thành viên [virtual] int
  • Mô tả sau bên ngoài sau định nghĩa của lớp mà hàm là thành viên

Hàm dựng (còn gọi là cấu tử, Constructor)

Cấu tử là hàm thành viên đặc biệt, có tên trùng với tên của lớp, làm nhiệm vụ tạo lập đối tượng theo yêu cầu. Khi một đối tượng được khai báo thì cấu tử sẽ tự động thực hiện để tạo lập đối tượng trong bộ nhớ. Một lớp có thể có nhiều cấu tử (tải bội), cấu tử không có tham số là cấu tử mặc định. Nếu ta không định nghĩa một cấu tử nào thì cấu tử mặc định sẽ được sử dụng, trái lại sẽ không được sử dụng.

#include class Point { int x, y; public: Point(){x=0;y=0;} //Cấu tử mặc định Point(int a, int b=0){x=a;y=b;} void Display(){cout <<"Toa do: ("<

Đối tượng a được tạo lập bởi cấu tử thứ nhất. Các đối tượng b và c được tạo lập bởi cấu tử thứ hai. Cấu tử thứ hai có một tham số mặc định, nếu ta đặt mặc định cho cả hai tham số thì phải bỏ đi cấu tử thứ nhất, vì nếu không, sẽ dẫn đến sự nhập nhằng khi khai báo Point a; (Ambiguity between 'Point::Point()' and 'Point::Point(int,int)').

Onminh (thảo luận) 18:16, ngày 28 tháng 9 năm 2009 (UTC)

Hàm hủy (còn gọi là huỷ tử, destructor)

Khi đối tượng không còn được sử dụng thì nên giải phóng nó khỏi bộ nhớ. Các hủy tử được sử dụng để làm việc này. Hủy tử cũng là hàm thành viên có tên trùng với tên của lớp, nhưng có thêm ký tự ~ ở trước. Nếu ta không định nghĩa, thì sử dụng hủy tử mặc định.Tất cả các hủy tử đều không có tham số. Trong ví dụ trên, ta có thể định nghĩa hủy tử như sau:

~Point(){} Onminh (thảo luận) 18:15, ngày 28 tháng 9 năm 2009 (UTC)

Hàm hằng

Một hàm thành viên có thể được khai báo đẻ trở thành hàm hằng. Với khai báo này thì thành viên đó sẽ chỉ có giá trị đọc được mà không có hiệu lực thay đổi giá trị nội tại của một thực thể. Để khai báo thì từ khóa const phải được đặt ngay sau khai báo hàm và đứng trước khối mã xác lập hàm số đó nếu có.

Lưu ý: Trong trường hợp này thì hàm hằng được hiểu với ý nghĩa khác với ý nghĩa trong toán học (khi một hàm số là có giá trị không đổi)

// hàm hằng class Time { public: Time(int h, int m, int s); int getHour() const; //Hàm hằng chỉ đọc được void setHour(int h); // hàm này dùng để gán hay thay đổi giá trị nên không thể khai báo const private: int hour; };

int Time::getHour() const //khai báo hàm hằng { return hour; // không thay đổi giá trị của bất kì thành viên nào }

void Date::setHour(int h) { hour = h // thay đổi giá trị của thành viên dữ liệu };

int main() { Time MyTime(10,5,15); const Time MyNoon(12,0,0); // Khai báo một đối tượng (hay một thực thể) là hằng MyTime.setHour(5); // OK Mytime.getHour(); // OK // MyNoon.setHour(2); // lỗi dòng này vì việc cài giá trị mới lên hằng MyNoon }

Lưu ý: Việc khai báo một kiểu dữ liệu nói chung hay một thành viên của một lớp nói riêng là một hằng có thể có nhiều điểm phức tạp khi kết hợp với các kiểu tham chiếu hay con trỏ. (xem thêm [http://www.possibility.com/Cpp/const.html Const Correctness in C++], [http://duramecho.com/ComputerInformation/WhyHowCppConst.html The C++ 'const' Declaration: Why & How] và Const correctness về cách sử dụng từ khóa const cho có hiệu quả)

Hàm ảo (virtual function)

Hàm ảo thường được định nghĩa ở lớp cơ sở và cho phép các lớp dẫn xuất từ nó được định nghĩa lại hàm ảo này. Giả sử FIGURE là lớp cơ sở, có sẵn phương thức Draw(). Lớp SQUARE và lớp CIRCLE cùng được dẫn xuất từ lớp FIGURE. Tất nhiên ta sẽ phải định nghĩa lại hai phương thức là SQUARE::Draw() và CIRCLE::Draw() của từng lớp cho phù hợp. Giả sử ptr là con trỏ trỏ đối tượng thuộc lớp FIGURE, s và c tương ứng là hai đối tượng thuộc lớp SQUARE và CIRCLE. Ta muốn rằng, khi cho ptr trỏ tới s thì lời gọi prt->Draw() sẽ vẽ ra hình vuông, còn khi cho ptr trỏ tới c thì lời gọi prt->Draw() sẽ vẽ ra hình tròn. Cách giải quyết của C++ là định nghĩa FIGURE::Draw() là hàm ảo. Ta xem ví dụ sau:

#include #include class FIGURE { int Xc, Yc; public: FIGURE (int x=0, int y=0){Xc=x;Yc=y;} virtual void Draw(){ cout<<"Tam tai: ("<Draw(); ptr=&c; ptr->Draw(); getch(); return 0; } Không thể định nghĩa cấu tử là hàm ảo, vì chính cấu tử làm nhiệm vụ khởi tạo bảng phương thức ảo VMT (Virtual Methods Table). Tuy nhiên các hủy tử có thể là hàm ảo.

Hàm cơ bản trừu tượng (pure virtual function)

Hàm cơ bản trừu tượng được giới thiệu trong lớp nhưng không được định nghĩa; hàm này bắt buộc phải được định nghĩa lại trong lớp con (derived class).

Nguyên tắc viết một hàm cơ bản trừu tượng là thêm =0 khi giới thiệu hàm.

Thí du:

void chay() = 0; // = 0 có nghĩa đây là hàm cơ bản trừu tượng

Hàm thành viên có kiểu static

Chức năng đặc biệt trên các hàm trong C++

friend

Hàm bạn không phải là hàm thành viên của lớp nhưng có thể thay đổi giá trị thành viên của lớp. Thí dụ:

class A {
friend void change(A &a)
private:
int b;
};
void change(A &a) { a. b++; } // thay đổi thành viên b trong lớp A

===

Nạp chồng hàm (function overloading)

Trong C++ có thể định nghĩa nhiều hàm trùng tên nhau, nhưng những hàm này phải có parameter khác nhau.

Thí dụ:

// Hàm này nhận 1 tham số là: "ia" int ham (int ia) { return ia; }

//===================================================== // Hàm này cùng tên với hàm trên và nhận 2 tham số là: "ia" và "ib" int ham (int ia, int ib) { return ia + ib; }

Nạp chồng toán tử (operator overloading)

Nạp chồng toán tử cho phép định nghĩa lại một toán tử (thí dụ định nghĩa lại +, -, *, /, vân vân) cho một type định nghĩa bởi người dùng.

Thí dụ:

// hàm này định nghĩa lại toán tử * cho lớp PhanSo
PhanSo operator*(const PhanSo &a, const PhanSo &b) 
{
PhanSo c;
c. tu_so = a. tu_so * b. tu_so; // nhân tử số với nhau
c. mau_so = a. mau_so * b. mau_so; // nhân mẫu số với nhau
return c;
}

Chức năng Tiêu bản

Tiêu bản đơn giản

Tiêu bản phức hợp

Sử dụng STL

Trình bày mã xác lập nội dung một chương trình C++

👁️ 2 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Cú pháp ngôn ngữ (lập trình) C** là tập hợp các quy tắc nhằm xác định cách thức để viết và dịch trong ngôn ngữ lập trình C. :Thí dụ:
 // Dòng này sẽ
**Cú pháp ngôn ngữ C++** là tập hợp các quy tắc nhằm xác định cách thức viết và dịch trong ngôn ngữ lập trình C++. Vì C++ là ngôn ngữ được thiết kế
phải|nhỏ|402x402px|[[Mã nguồn của một chương trình máy tính đơn giản được viết bằng ngôn ngữ lập trình C. Khi được biên dịch và chạy, nó sẽ cho kết quả "Hello, world!".]] **Ngôn ngữ lập trình**
**Pascal** là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus Wirth phát triển vào năm 1970. Pascal là ngôn ngữ lập trình đặc biệt thích hợp
**C** là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều
**C#** (**C Sharp**, đọc là _"xi-sáp"_) là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch .NET của họ.
thumb|thumbtime=5|_Preservation of the Sign Language_ (1913) nhỏ|Juan Pablo Bonet, _Reducción de las letras y arte para enseñar a hablar a los mudos_ (Madrid, 1620). **Ngôn ngữ ký hiệu** hay **ngôn ngữ dấu hiệu**, **thủ ngữ**
nhỏ|Cbmain Trong khoa học máy tính, một **ngôn ngữ lập trình bậc cao** (tiếng Anh: _high-level programming language_) là một ngôn ngữ lập trình có sự trừu tượng hóa mạnh mẽ khỏi các chi tiết
**Java** (phiên âm Tiếng Việt: "_Gia-va_") là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết kế để có càng ít phụ thuộc thực thi càng tốt. Nó là ngôn ngữ
**Go** là một ngôn ngữ lập trình mới do Google thiết kế và phát triển. Nó được kỳ vọng sẽ giúp ngành công nghiệp phần mềm khai thác tối đa nền tảng đa lõi của
**R** là một ngôn ngữ lập trình và môi trường phần mềm dành cho tính toán và đồ họa thống kê. Đây là một bản hiện thực ngôn ngữ lập trình S với ngữ nghĩa
**Python** () là ngôn ngữ lập trình bậc cao đa năng. Triết lý thiết kế của nó nhấn mạnh khả năng đọc mã bằng cách sử dụng thụt lề đáng kể. Python có kiểu động
**D** là một ngôn ngữ lập trình hệ thống hướng đối tượng, dùng câu lệnh, đa mẫu hình do Walter Bright của Digital Mars tạo ra và phát hành năm 2001. Quá trình thiết kế
**Ruby** là một ngôn ngữ lập trình hướng đối tượng, có khả năng phản ứng. Theo tác giả, Ruby chịu ảnh hưởng bởi Perl, Smalltalk, Eiffel, Ada và Lisp. Ruby cung cấp nhiều mẫu hình
**Tiếng Pháp** (, IPA: hoặc , IPA: ) là một ngôn ngữ Rôman (thuộc hệ Ấn-Âu). Giống như tiếng Ý, Bồ Đào Nha, Tây Ban Nha, România, Catalonia hay một số khác, nó xuất phát
**Nguồn gốc ngôn ngữ** và quan hệ của ngôn ngữ đối với tiến hóa của loài người là chủ đề học thuật đã được bàn luận trong nhiều thế kỷ. Mặc dù vậy, ta vẫn
nhỏ|Giao tiếp phi ngôn ngữ giữa hai người tại [[Tây An, Trung Quốc.]] **Giao tiếp phi ngôn ngữ** giữa con người là sự giao tiếp bằng cách gửi và nhận những tín hiệu phi ngôn
thumb|**[[Phép tính lambda** là một hệ thống hình thức để định nghĩa hàm, ứng dụng hàm và đệ quy được Alonzo Church đề xuất vào những năm 193x.]] **Lý thuyết ngôn ngữ lập trình** (thường
**Kotlin** là một ngôn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM) và có thể được biên dịch sang mã nguồn Java hay sử dụng cơ sở hạ tầng trình biên dịch
**Swift** là một ngôn ngữ lập trình hướng đối tượng dành cho việc phát triển iOS và macOS, watchOS, tvOS và z/OS. được giới thiệu bởi Apple tại hội nghị WWDC 2014. Swift được mong
**Ngôn ngữ trung gian chung **hoặc **Ngôn ngữ trung gian dùng chung** (**Common Intermediate Language - CLI**), là ngôn ngữ lập trình có thể đọc được của con người ở mức thấp nhất được xác
thumb|Một đoạn mã Java ngắn với từ khóa được làm nổi bằng phông chữ màu xanh đậm Cú pháp của ngôn ngữ lập trình Java là tập các quy tắc để xác định các viết
**Ngôn ngữ biên dịch** (tiếng Anh: _compiled language_) là ngôn ngữ lập trình có triển khai thường là trình biên dịch (bộ dịch tạo ra mã máy từ mã nguồn), chứ không phải trình thông
**Batch** là một ngôn ngữ lập trình được dựa trên các tập tin thực thi batch (*.bat, *.cmd,...) để chạy. Chúng sẽ được thực thi dưới dạng một cửa sổ **Command Prompt** để chạy những
**Scala** ( ) là một ngôn ngữ lập trình đa mẫu hình, được thiết kế để tích hợp các tính năng của lập trình hướng đối tượng với lập trình hàm Nó cũng có thể
**C++** (**C Plus Plus**, **CPP,** IPA: /siː pləs pləs/) là một ngôn ngữ lập trình đa năng bậc cao (high-level) được tạo ra bởi Bjarne Stroustrup như một phần mở rộng của ngôn ngữ lập
Trong lập trình máy tính, **Hợp ngữ** (hay **assembly**) thường được viết tắt là **asm** là bất kỳ ngôn ngữ lập trình cấp thấp nào có sự tương ứng rất mạnh giữa các tập lệnh
**C++11**, được biết đến trước đây với tên gọi C++0x, là tên gọi của tiêu chuẩn của ngôn ngữ lập trình C++. Tiêu chuẩn này được chấp nhận bởi tổ chức ISO vào ngày 12

**Ngôn ngữ kịch bản** () là ngôn ngữ lập trình cho môi trường thời gian chạy đặc biệt tự động hóa thực thi các tác vụ; các tác vụ thay thế có thể
**Sung ngữ** (tiếng Anh: **adjunct**) là một bộ phận tùy ý (hay _về mặt cấu trúc thì có thể bỏ qua_) trong câu, tiểu cú, hoặc ngữ đoạn sao cho nếu gỡ bỏ ra thì
**Thư viện chuẩn C** ngày nay là một tập hợp của các tập tin tiêu đề và thư viện các thủ tục được tiêu chuẩn hóa dùng để thiết lập các pháp toán tổng quát,
**Cú pháp câu lệnh** (tiếng Anh: _programming syntax_) của một ngôn ngữ lập trình là các quy tắc luật lệ về trật tự và hình thức viết của một câu lệnh. Tùy theo ngôn ngữ
Trong ngôn ngữ lập trình C, **kiểu dữ liệu** (tiếng Anh: _data type_) là khai báo cho địa chỉ bộ nhớ hay [[biến (khoa học máy tính)| biến]] mà xác định đặc tính của dữ
Trang đầu _[[Phép giảng tám ngày_ in năm 1651 của nhà truyền giáo Alexandre de Rhodes. Bên trái là tiếng Latinh, bên phải là tiếng Việt viết bằng chữ Quốc ngữ.]] **Chữ Quốc ngữ** là
Ngôn ngữ lập trình C có một hệ thống mở rộng cho việc **khai báo các biến của các kiểu khác nhau**. Những quy tắc dành cho các kiểu phức tạp có thể gây nhầm
phải**Ngữ pháp tiếng Pháp (Grammaire française)** là những nghiên cứu về quy tắc sử dụng của ngôn ngữ này. Trước tiên cần phải phân biệt hai quan điểm: **_ngữ pháp miêu tả_** (_grammaire descriptive_) và
**Ngữ hệ Nam Đảo** () là một ngữ hệ lớn phân bổ rộng rãi tại các hải đảo Đông Nam Á và Thái Bình Dương, Madagascar và một phần nhỏ tại đại lục châu Á.
nhỏ|Tên đường phố bằng tiếng Pháp và phương ngữ Monaco ở Monaco Whoville **Phương ngữ Monaco** (tên bản địa: _Munegascu_) là một phương ngữ hiện đại của tiếng Liguria, được nói ở Monaco. ## Hệ
**Ngôn ngữ truy vấn tích hợp** (tiếng Anh: _Language Integrated Query_, viết tắt _LINQ_) là một thành phần của .NET và .NET Framework cung cấp khả năng truy vấn cấp độ ngôn ngữ và cùng
nhỏ|Bản đồ đường đồng ngữ tại [[quần đảo Faroe]] **Đường đồng ngữ**, còn gọi là **đồng ngữ tuyến**, là đường trên bản đồ phương ngữ khoanh vùng phổ biến của một hiện tượng ngôn ngữ,
**Louis XV** (15 tháng 2 năm 1710 – 10 tháng 5 năm 1774), biệt danh **Louis Đáng yêu**, là quân vương của Vương tộc Bourbon, giữ tước hiệu Vua của Pháp từ 1 tháng 9
**François I** (tiếng Pháp: François Ier; tiếng Pháp Trung cổ: Francoys; 12 tháng 9 năm 1494 – 31 tháng 3 năm 1547) là Quốc vương Pháp từ năm 1515 cho đến khi qua đời vào
**Quechua** (), hay còn gọi là **** ("ngôn ngữ của nhân dân") trong tiếng Quechua, là một ngữ hệ bản địa của dãy Andes, Peru. Có nguồn gốc từ một ngôn ngữ tổ tiên chung,
**Louis XIV của Pháp** (; 5 tháng 9 năm 16381 tháng 9 năm 1715), còn được gọi là **Louis Đại đế** (, ) hay **Vua Mặt Trời** (, ), là một quân chủ thuộc Nhà
**C ++ 17** là phiên bản sửa đổi của tiêu chuẩn ISO/IEC 14882 cho ngôn ngữ lập trình C++. ## Lịch sử Trước khi Ủy ban Tiêu chuẩn C++ ấn định chu kỳ phát hành
**Tuyên ngôn độc lập của Hoa Kỳ** là tuyên bố được thông qua bởi cuộc họp của Đệ nhị Quốc hội Lục địa tại Tòa nhà bang Pennsylvania (nay là Independence Hall) ở Philadelphia, Pennsylvania
**Pháp** (; ), tên chính thức là **Cộng hòa Pháp** ( ) (), là một quốc gia có lãnh thổ chính nằm tại Tây Âu cùng một số vùng và lãnh thổ hải ngoại. Phần
thế=A sleeping girl|nhỏ| _Cô Gái Đang Ngủ_, [[Domenico Fetti, năm 1615|300x300px]] **Ngủ** là trạng thái giảm hoạt động tinh thần và thể chất, trong đó ý thức bị thay đổi, hoạt động của các giác
**ALGOL** (viết tắt từ **ALGO**rithmic **L**anguage) là một họ các ngôn ngữ lập trình máy tính bắt buộc được phát triển vào năm 1958. ALGOL ảnh hưởng lớn đến nhiều ngôn ngữ khác và là
**Washington, D.C.**, tên chính thức là **Đặc khu Columbia** (), còn được gọi là **Washington** hoặc **D.C.**, là thủ đô và là đặc khu liên bang duy nhất của Hoa Kỳ. Nó tọa lạc trên