C và C++ tương đồng nhau ở nhiều khía cạnh. C++ bổ sung tính hướng đối tượng, nhưng hầu hết chương trình C cũng chạy đúng trong C++. Tuy nhiên, có trường hợp chương trình chạy được trong C nhưng lỗi khi biên dịch C++.
Ví dụ
#include <stdio.h>
void myFunction() {
printf("Ham duoc goi\n");
}
int main() {
myFunction();
myFunction(2); // Truyền đối số cho hàm không tham số
return 0;
}
Kết quả
Ham duoc goi Ham duoc goi
Chương trình chạy trong C và cho kết quả, nhưng khi biên dịch C++ sẽ báo lỗi compile-time: "quá nhiều đối số được truyền".