Có bao nhiêu hàm calc
được sinh ra trong chương trình sau:
template<class T>
T calc(T a) {
return a < 0 ? -a : a;
}
int main() {
cout << calc<char>(-127) + calc(‘A’) + calc(4);
}
Các đáp án:
A. 2
B. Lỗi cú pháp
C. 1
D. 3
Phân tích:
calc<char>(-127)
→T = char
calc('A')
→'A'
là mộtchar
literal →T = char
calc(4)
→4
làint
literal →T = int
=> Có 2 kiểu được sử dụng:
char
int
=> Như vậy sẽ sinh ra 2 phiên bản của hàm calc
.