void hn(int p,int z){
}
void hn(int *p,int *z){
}
void hn(int &p,int &z){
}
Trong các hàm sau đây,cặp hàm nào được coi là overload @@ xin hỏi ý kiến mọi người
mình nghĩ là k có cái nào gọi là overload hết! những cái này bạn chỉ cần gõ ra trên visual là tự có kq thôi, nếu k có lỗi thì là overload, ngược lại!
Dự là 1+2, 2+3 thôi.
Cái món & này cũng là first-class “object” nhưng mà gán xong là như bt ngay.
uh cảm ơn bạn ^^, mình cũng thử trước đó rồi, mình thấy gõ cả 3 kiểu hàm đều chạy được nên ms ko biết :)) trong khi đây là một câu trắc nghiệm trong bài thi của mình ấy T^T nên mình phân vân lắm
cảm ơn bạn nhé.
mình cũng nghĩ như vậy :)) mà chả có cách nào chứng minh được cả.
Một translation unit có cả 3 prototype vẫn biên dịch? Giờ bạn thêm code vào rồi gọi thử xem
Theo mình
gọi là chồng hàm khi
tên các hàm giống nhau
và đáp ứng 1 hoặc cả 3 đk
- số tham số vào khác nhau
- kiêu các tham số khác nhau
- thứ tự các tham số khác nhau
như trên thì cùng cả kiểu cùng cả thứ tự, cùng cả số lương
hình như nó phân biệt qua tham chiếu và tham biến
như 3 hàm trên thì chỉ có 2 hàm
void hn(int *p,int *z){
}
void hn(int &p,int &z){
}
là nạp chồng
( ide vs 2013)
và phân biệt các hàm này bằng cách
lời gọi các hàm nếu gọi tên các biến thì sẽ gọi hàm tham chiếu
int a = 0, b = 0;
hn(a,b);
call
void hn(int &p,int &z){ }
còn nếu đưa vào địa chỉa của a, b thì sẽ gọi hàm tham biến
int a = 0, b = 0;
hn(&a,&b);
call
void hn(int *p,int *z){ }
cái này là hình thử trên ide, mình cũng chưa gặp trường hợp này
và kiểm tra thì kiểm tra được, nhưng k giải thích tân tường được
1+2 vẫn được chứ bạn
mình thử trên visual studio 2013 k được