Xem mẫu

  1. LẬP TRÌNH C/C++ NÂNG CAO Yêu cầu trước khi đọc: học xong Lập trình C/C++ căn bản BÀI 4: TEMPLATE Hàm template Giả sử chúng ta cần viết một hàm trả về số nguyên lớn nhất giữa 2 số CODE int maximum(int a,int b) { return (a>b)?a:b; } Rồi đến số thực chúng ta cũng làm như vậy CODE double maximum(double a,double b) { return (a>b)?a:b; } Rồi giả sử như với lớp Person chúng ta cũng phải làm như vậy (toán tử > đã được overload) CODE Person maximum(Person a,Person b) { return (a>b)?a:b; } C++ cung cấp một giải pháp cho vấn đề này, đó là template CODE templateT maximum(T a,T b) { return (a>b)?a:b; } int main() {
  2. int a=7;int b=5; cout
  3. pair myobject(155,36); myobject.getmaximum(); Thật tuyệt, đúng không ? Vấn đề không đơn giản như vậy. Đau đầu Xem lại hàm template dưới đây CODE templateT maximum(T a,T b) { return (a>b)?a:b; } Ví dụ dưới đây thực ra là đang so sánh địa chỉ bộ nhớ (memory address) của 2 biến a và b CODE char* a = "hello";char* b = "world"; cout
  4. r = new int; //tương đương với p = new int *r = 5; //tương đưong với *p = 5 cout
nguon tai.lieu . vn