Tái khai báo (redeclare) hàm và biến trong C++

Cho mình hỏi tại sao mình có thể tái khai báo hàm nhưng không thể tái khai báo biến trong C++?

Ví dụ:

int n;
int n;

sẽ báo lỗi

Nhưng:

void getValue();
void getValue();

thì không

int n; là một khai báo hoàn chỉnh rồi.

Đây là một khai báo hoàn chỉnh của hàm:

void foo() {

}

Dạng khai báo void foo(); thường sử dụng trong header và không bị khống chế về vị trí so với hàm gọi.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?