Register error handler

Vd hệ thống thanh toán (payment gateway) User mua hàng –> Payment Service –> VNPay/MoMo, có thể phát sinh lỗi như mất mạng, timeout,… Thay vì mỗi chỗ tự xử lý Ta đăng ký error handler một lần.

Friend function

friend function là một hàm không nằm trong class, nhưng được phép truy cập vào tất cả thành phần private và protected của lớp. Ưu điểm Nhược điểm Truy cập trực tiếp dữ liệu private/protected. Phá vỡ tính đóng gói (Encapsulation). Hữu ích khi overload operator. Tạo sự phụ thuộc giữa các lớp/hàm. Giúp các … Read more

enum, struct, class

enum, struct, class và namespace dùng để gom nhóm các hằng số, hàm, hoặc logic liên quan. So sánh nhanh Cách dùng Mục đích gom nhóm Kiểm tra kiểu Phạm vi tên Mở rộng logic Dễ dùng bitmask enum Gom nhóm hằng số nguyên Không Không Không Có enum class Gom nhóm hằng số nguyên … Read more

Dynamic allocation (cấp phát động)

So sánh C và C++ malloc vs calloc Trong C, cả malloc và calloc đều dùng để cấp phát bộ nhớ động, nhưng chúng có một vài điểm khác biệt quan trọng malloc thường nhanh hơn vì không cần gán giá trị ban đầu, nhưng calloc tiện lợi khi muốn vùng nhớ sạch (tránh lỗi … Read more

Stacktrace trong C++

Giữ symbol names (biên dịch với -g và link với -rdynamic trên Linux), nên dùng cả 2 để có đầy đủ tên hàm + số dòng. Debug symbol “-g” để thêm thông tin debug (file, line). Linking flags “-rdynamic" để export symbol names để backtrace() hoặc addr2line có thể ánh xạ địa chỉ bộ nhớ … Read more

Makefile

Makefile là một file văn bản dùng cho công cụ make trong Linux/Unix. Nó giúp tự động hóa việc biên dịch, liên kết và quản lý dự án C/C++. Thay vì gõ lệnh g++ btest.cpp -o btest thủ công mỗi lần, bạn chỉ cần chạy make và Makefile sẽ lo phần còn lại. Ưu điểm: … Read more