Khi làm việc với dự án C++, chúng ta cần phải quan tâm đến cú pháp. Nói cách khác, cú pháp là tập hợp những quy tắc hỗ trợ cho việc viết mã nguồn trong lập trình C++. Những quy tắc này sẽ đóng vai trò trong việc chỉ dẫn cách mà những phần tử như hàm, lệnh hay toán tử có thể khai báo và sắp xếp trong dự án. Hãy theo chúng tôi để tìm hiểu kỹ hơn về cú pháp C++ cơ bản hiện nay nhé.
Sơ lược về cú pháp C++ cơ bản
Chuyên mục này sẽ trình bày sơ lược về cú pháp C++. Khi đánh giá một chương trình cần phải tương tác hay giao tiếp thông qua việc gọi những phương thức cho mỗi đối tượng. Trong đó phải kể đến lớp, đối tượng, phương thức hay những biến đối tượng.
– Đối tượng: gồm những trạng thái và hành vi.
– Lớp: một lớp thường được xem là một template hay blueprint có thể mô tả trạng thái hay hành vi cho đối tượng cần giao tiếp.
– Phương thức: phương thức cũng được hiểu nôm na là một hành vi. Trên thực tế, lớp sẽ bao gồm nhiều phương thức. Phương thức sẽ là khu vực để thao tác dữ liệu và mọi hành động triển khai.
– Biến instance: sẽ có tập hợp biến đối tượng hiển thị cho một đối tượng cụ thể. Lúc này, trạng thái trên đối tượng sẽ thực thi thông qua những giá trị được gán cho những biến đối tượng với nó.
Cấu trúc chương trình
Mục này sẽ tập trung phân tích và liệt kê các thành phần nằm trong chương trình C++. Chúng tôi xin mời quý đọc giả xem đoạn mã bên dưới.
#include <iostream> using namespace std; //Khai báo hàm void myFunction(); //Hàm main int main() { cout << "Hello, world!" << endl; myFunction(); return 0; } //Định nghĩa hàm void myFunction() { cout << "This is my function." << endl; }
Ý nghĩa của các thành phần trong chương trình phía trên gồm:
– ‘#include <iostream>’: thư viện chuẩn của C++ được đưa vào chương trình thông qua lệnh này. Có thể hiểu là thư viện sẽ lưu những hàm tiện ích nhằm phục vụ việc thao tác ở hai đầu (đầu vào/đầu ra) trong chương trình.
– ‘using namespace std;’: lệnh này hỗ trợ những thành phần trên namespace ‘std’. Namespace này sẽ bao gồm những lớp, hàm hay đối tượng ảnh hưởng đến đầu vào/đầu ra của chương trình C++.
– ‘void myFunction()’: phần này chính là phần khai báo một hàm với tên ‘myFunction’ và tất nhiên là nó không có truyền vào đối số và trả về giá trị.
– ‘int main() { … }’: hàm chính trong chương trình. Lúc này có thể hiểu chương trình sẽ triển khai từ phần này. Hàm ‘main’ sẽ cho ra kết quả giá trị số nguyên (kết quả thường là ‘0’ khi chạy chương trình xong)
– ‘cout << “Hello, world!” << endl;’: lệnh dùng để đại diện cho một chuỗi ký tự có thể hiển thị ra màn hình thông qua việc dùng đối tượng ‘cout’ trong namespace ‘std’.
– ‘myFunction()’: lệnh gọi hàm ‘myFunction’.
– ‘void myFunction() { … }’: dùng để định nghĩa hàm ‘myFunction’. Nó thường biểu thị một chuỗi những ký tự xuất ra màn hình.
Cuối cùng, khi chạy đoạn code trên nó sẽ xuất ra màn hình dòng chữ “Hello, world!”. Thậm chí, hiển thị thêm chuỗi ký tự khác: “This is my function” từ chính hàm ‘myFunction’ thực thi.
Làm sao để biên dịch và thực thi chương trình C++?
1. Biên dịch và chạy chương trình thông qua CMD
Đầu tiên chúng ta xin trình bày cách lưu file, cũng như chạy chương trình thông qua cmd. Hãy theo dõi chi tiết những bước sau:
1. Người dùng mở một trình biên tập text editor và bỏ đoạn code trên vào.
2. Sau đó lưu với tên hello.cpp
3. Mở command prompt và điều hướng đến thư mục nơi lưu file.
4. Soạn ‘g++ hello.cpp’ rồi ấn Enter bắt đầu biên dịch. Nếu không có trục trặc gì thì bạn sẽ được chuyển tới dòng tiếp theo để tạo a.out file thực thi.
5. Soạn ‘a.out’ rồi chạy chương trình.
6. Lúc này trên cửa sổ sẽ xuất hiện dòng chữ “Hello world”.
$ g++ hello.cpp
$ ./a.out
Hello World
Hãy chú ý rằng g++ nằm trong path của người dùng và nó được chạy trong thư mục có chứa tệp hello.cpp.
2. Dùng qua Visual Studio hay Turbo C++
Khi bạn không muốn dùng CMD để biên dịch thì có thể dùng Dev-C++, VS, hoặc thậm chí Turbo C++ để copy ví dụ ở phía trên rồi thực hiện tiếp những bước sau.
1. Mở Dev-C++, sau đó ấn chọn File 🡪 New Source.
2. Dán ví dụ trên vào source file rồi chọn Execute tab. Sau đó là Compile & Run để thực thi. Ngoài ra, có thể tạo project mới trong mục New rồi đặt tên và lưu nó.
Khối và dấu chấm phẩy trong C++
Đối với ngôn ngữ lập trình C++, dấu chấm phẩy (;) thường dùng để kết thúc dòng lệnh. Còn khối (block) dùng để nhóm nhiều lệnh với nhau.
Ví dụ về dấu chấm phẩy trong C++:
int a = 10; // khai báo biến a và gán giá trị 10 cho a
Có thể thấy được dấu chấm phẩy được dùng để kết thúc lệnh khai báo biến ‘a’ với giá trị được gán là ‘10’ tương ứng với biến đó.
Ví dụ về khối (block) trong C++:
int main() { int a = 10; int b = 20; if (a > b) { cout << "a is greater than b" << endl; } else { cout << "b is greater than a" << endl; } return 0; }
‘If’ và ‘else’ được xếp vào cùng một khối thông qua sử dụng dấu ngoặc nhọn. Lúc này, những lệnh bên trong sẽ được chạy dựa trên điều kiện yêu cầu từ lệnh ‘If’. Nếu ‘a>b’ thì lệnh ‘cout << “a is greater than b” << endl;’ sẽ chạy. Ngược lại, lệnh ‘cout << “b is greater than a” << endl;’ sẽ thực thi.
Thế nào là định danh trong C++?
Định danh (Identifier) trong C++ là tên được dùng cho việc định danh cho biến, lớp hay hàm trong C++. Nó phải đảm bảo một vài quy tắc như:
– Bắt đầu bằng ký tự chữ hay dấu gạch dưới.
– Không được dùng số hay dấu chấm để bắt đầu
– Không được trùng với từ khóa trong C++
– Chỉ chứa những ký tự số, chữ hay dấu gạch dưới.
– Không giới hạn độ dài.
Ví dụ:
int myVariable = 10; float myFloat = 3.14; char myChar = 'a'; void myFunction() { // code here } class MyClass { // code here };
‘myVariable’, ‘myFloat’, ‘myChar’, ‘myFunction’ và ‘MyClass’ đều được sử dụng như một định danh để định danh cho hàm, biến hay lớp nằm trong chương trình C++. Tất nhiên những định danh này đều tuân theo các quy tắc đặt tên theo ngôn ngữ lập trình C++.
Từ khóa trong C++ là gì?
Từ khóa là những từ có sẵn và mang ý nghĩa đặc biệt cho mỗi ngôn ngữ. Trong C++, từ khóa cũng quan trọng như vậy. Lưu ý những từ khóa này không được dùng để làm tên cho hàm, biến hay lớp. Sau đây là vài từ khóa cơ bản trong C++ và những ví dụ kèm theo.
1. ‘int’: thể hiện biến kiểu số nguyên
int myNumber = 10;
2. ‘float’: chỉ ra biến kiểu số thực
float myFloat = 3.14;
3. ‘char’: định nghĩa biến kiểu ký tự
char myChar = 'a';
4. ‘If’: điều khiển quá trình thực thi trong chương trình thông qua điều kiện
if (myNumber > 5) { // code here }
5. ‘else’: điều kiện phụ của lệnh ‘If’
class MyClass { // code here };
6. ‘While’: thể hiện vòng lặp và có chức năng lặp lại những lệnh trong khối tới khi điều kiện sai.
while (myNumber > 0) { // code here }
7. ‘For’: cũng là vòng lặp nhưng lặp lại những lệnh trong khối với điều kiện cần kiểm tra.
for (int i = 0; i < 10; i++) { // code here }
8. ‘Switch’: câu lệnh lựa chọn để chạy những lệnh tương ứng thích hợp với giá trị biểu thức.
switch (myChar) { case 'a': // code here break; case 'b': // code here break; default: // code here break; }
9. ‘Class’: thể hiện một lớp
class MyClass { // code here };
10. ‘Public’: khai báo Public trong một lớp
class MyClass { public: // code here };
11. ‘Private’: khai báo thành viên Private trong một lớp
class MyClass { private: // code here };
Trigraph trong C++
Trigraph được hiểu nôm na là một chuỗi ba ký tự thường được dùng để thay thế những ký tự đặc biệt có trong mã nguồn C++. Sau đây là một số trigraph thịnh hành hiện nay và ý nghĩa kèm theo.
1. ??=: thay thế cho toán tử #.
2. ??/: thay thế cho toán tử \.
3. ??’: thay thế cho ký tự ^.
4. ??(: thay thế cho ký tự [.
5. ??): thay thế cho ký tự ].
6. ??!: thay thế cho toán tử |.
7. ??<: thay thế cho ký tự {.
8. ??>: thay thế cho ký tự }.
9. ??-: thay thế cho toán tử ~.
Ví dụ: Chúng tôi sẽ dùng trigraph để thay thế ký tự ‘#’ bằng ‘??=’
#include <iostream??=h??> int main() { std::cout << "Hello, world!" << std::endl; return 0; }
Trigraph ‘??=’ có thể được dùng để thay thế cho ký tự ‘#’ trong lệnh ‘#include <iostream.h>’. Nói cách khác, trigraph sẽ bị thay thế bằng ký tự ‘#’ trong quá trình biên dịch chương trình. Không những vậy, chương trình vẫn sẽ ổn định và thực thi bình thường.
Khoảng trắng trong C++ là gì?
Khoảng trắng là bất kỳ ký tự nào đều được dùng để phân tách giữa những phần tử trong mã nguồn C++. Nó gồm những khoảng trắng, tab, hay dòng mới. Tuy nhiên, khoảng trắng không hề tác động đến việc vận hành của chương trình và thậm chí làm cho mã nguồn cực kỳ đơn giản và dễ đọc hơn.
Ví dụ:
int main() { int x = 10; int y = 20; int z=30; int sum = x + y + z; std::cout << "The sum is: " << sum << std::endl; return 0; }
Các khoảng trắng từ ví dụ trên đều được dùng để phân tách giữa những phần khác nhau thuộc cùng một chương trình.
– Khoảng trắng dùng để tách giữa những biến như ‘x’, ‘y’ và ‘z’.
– Khoảng trắng dùng để phân tách giữa phép gán ‘=’ cũng như giá trị mà biến được gán ‘z’.
– Khoảng trắng dùng để phân tách toán tử ‘+’ và những biến còn lại như ‘x’,’y’, và ‘z’.
– Khoảng trắng dùng để tách giữa các câu lệnh khác nhau thuộc hàm ‘main’.
Lời kết
Cú pháp C++ cơ bản thật chất không quá phức tạp như các bạn đã nghĩ. Chúng tôi tin rằng sau khi xem bài viết này, những bạn mới bắt đầu làm quen với ngôn ngữ lập trình C++ có thể nắm vững được những kiến thức cơ bản và thực hành chúng dễ dàng. Một lần nữa, xin cám ơn quý đọc giả đã quan tâm và chia sẻ những kinh nghiệm quý báu liên quan đến ngôn ngữ lập trình C++.