Chuyển tới nội dung chính

Các từ khóa trong C++

Từ khóa (keyword)Mô tả ngắn
alignasChỉ định căn chỉnh bộ nhớ cho biến hoặc kiểu (C++11).
alignofTrả về kích thước căn chỉnh của một kiểu (C++11).
andToán tử thay thế cho && (logical AND).
and_eqToán tử thay thế cho &= (bitwise AND assignment).
asmChèn mã assembly nội tuyến (phụ thuộc trình biên dịch).
autoSuy luận kiểu tự động (C++11 mở rộng).
bitandToán tử thay thế cho & (bitwise AND).
bitorToán tử thay thế cho | (bitwise OR).
boolKiểu dữ liệu boolean (true hoặc false).
breakThoát khỏi vòng lặp hoặc câu lệnh switch.
caseNhãn trong câu lệnh switch.
catchXử lý ngoại lệ trong khối try-catch.
charKiểu ký tự 8-bit.
char8_tKiểu ký tự UTF-8 (C++20).
char16_tKiểu ký tự UTF-16 (C++11).
char32_tKiểu ký tự UTF-32 (C++11).
classĐịnh nghĩa một lớp.
complToán tử thay thế cho ~ (bitwise NOT).
conceptXác định ràng buộc kiểu cho template (C++20).
constĐịnh nghĩa hằng số hoặc thành viên không thay đổi.
constevalChỉ định hàm tính toán tại thời điểm biên dịch (C++20).
constexprChỉ định biểu thức hoặc hàm tính toán tại biên dịch (C++11).
constinitKhởi tạo biến tĩnh tại thời điểm biên dịch (C++20).
const_castÉp kiểu để thay đổi tính const hoặc volatile.
continueBỏ qua lần lặp hiện tại trong vòng lặp.
co_awaitHỗ trợ lập trình bất đồng bộ với coroutines (C++20).
co_returnTrả về giá trị từ coroutine (C++20).
co_yieldTrả về giá trị tạm thời từ coroutine (C++20).
decltypeSuy luận kiểu của biểu thức (C++11).
defaultNhãn mặc định trong switch hoặc hàm thành viên mặc định.
deleteGiải phóng bộ nhớ hoặc chỉ định hàm bị xóa.
doBắt đầu vòng lặp do-while.
doubleKiểu số thực dấu chấm động.
dynamic_castÉp kiểu thời gian chạy cho đa hình.
elseĐiều kiện thay thế trong câu lệnh if.
enumĐịnh nghĩa kiểu liệt kê.
explicitNgăn chuyển đổi ngầm định trong hàm tạo hoặc ép kiểu.
exportĐánh dấu xuất module (C++11, lỗi thời trong C++20).
externKhai báo biến hoặc hàm liên kết bên ngoài.
falseGiá trị boolean sai.
floatKiểu số thực dấu chấm động (độ chính xác thấp).
forBắt đầu vòng lặp for.
friendCấp quyền truy cập đặc biệt cho hàm hoặc lớp.
gotoChuyển điều khiển đến nhãn (ít dùng).
ifBắt đầu câu lệnh điều kiện.
importNhập module (C++20).
inlineGợi ý trình biên dịch nội tuyến hóa hàm.
intKiểu số nguyên.
longMở rộng kích thước kiểu số nguyên.
moduleĐịnh nghĩa module (C++20).
mutableCho phép sửa đổi thành viên trong đối tượng const.
namespaceĐịnh nghĩa phạm vi tên.
newCấp phát bộ nhớ động.
noexceptChỉ định hàm không ném ngoại lệ (C++11).
notToán tử thay thế cho ! (logical NOT).
not_eqToán tử thay thế cho != (not equal).
nullptrCon trỏ null an toàn kiểu (C++11).
operatorĐịnh nghĩa toán tử tùy chỉnh.
orToán tử thay thế cho || (logical OR).
or_eqToán tử thay thế cho |= (bitwise OR assignment).
privateMức truy cập riêng tư trong lớp.
protectedMức truy cập bảo vệ trong lớp.
publicMức truy cập công khai trong lớp.
registerGợi ý lưu biến trong thanh ghi (lỗi thời từ C++17).
reinterpret_castÉp kiểu nguy hiểm giữa các kiểu không liên quan.
requiresXác định ràng buộc cho template (C++20).
returnTrả về giá trị từ hàm.
shortKiểu số nguyên ngắn hơn int.
signedKiểu số nguyên có dấu.
sizeofTrả về kích thước của kiểu hoặc biến.
staticĐịnh nghĩa biến hoặc hàm tĩnh.
static_assertKiểm tra điều kiện tại thời điểm biên dịch (C++11).
static_castÉp kiểu an toàn cho các kiểu liên quan.
structĐịnh nghĩa cấu trúc (mặc định public).
switchBắt đầu câu lệnh chọn nhánh.
templateĐịnh nghĩa mẫu hàm hoặc lớp.
thisCon trỏ đến đối tượng hiện tại trong hàm thành viên.
thread_localBiến cục bộ theo luồng (C++11).
throwNém ngoại lệ.
trueGiá trị boolean đúng.
tryBắt đầu khối xử lý ngoại lệ.
typedefĐịnh nghĩa bí danh cho kiểu.
typeidTrả về thông tin kiểu tại thời gian chạy.
typenameChỉ định tên kiểu trong template.
unionĐịnh nghĩa kiểu dữ liệu chia sẻ bộ nhớ.
unsignedKiểu số nguyên không dấu.
usingĐịnh nghĩa bí danh hoặc nhập tên từ namespace.
virtualHỗ trợ đa hình trong kế thừa.
voidKiểu không trả về giá trị hoặc con trỏ tổng quát.
volatileChỉ định biến có thể thay đổi ngoài dự đoán.
wchar_tKiểu ký tự rộng.
whileBắt đầu vòng lặp while.
xorToán tử thay thế cho ^ (bitwise XOR).
xor_eqToán tử thay thế cho ^= (bitwise XOR assignment).

Ghi chú:

  • Từ khóa lỗi thời:
    • register (C++17): Không còn được sử dụng vì trình biên dịch tự tối ưu hóa.
    • export (C++11, loại bỏ trong C++20): Được dùng cho template xuất ra nhưng không phổ biến, bị thay thế bởi module.
  • Từ khóa mới trong C++20/C++23:
    • C++20: char8_t, concept, consteval, constinit, co_await, co_return, co_yield, import, module, requires.
    • C++23: Không giới thiệu từ khóa mới, nhưng mở rộng các tính năng như if consteval và cải tiến module.
  • Toán tử thay thế: Các từ khóa như and, or, not, bitand, bitor,... được dùng trong các môi trường không hỗ trợ ký tự đặc biệt (&&, ||,...).