Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Câu hỏi về Templates, giúp mình với.

  1. #1
    Ngày gia nhập
    08 2009
    Bài viết
    148

    Mặc định Câu hỏi về Templates, giúp mình với.

    Mình có đoạn chương trình sau:
    C++ Code:
    1. #include<iostream.h>
    2. #include<conio.h>
    3.  
    4. template <typename T1, typename T2>
    5.  
    6. T1  timmax(T1 a, T2 b)
    7. {
    8.     return a>b?a:b;  
    9. }
    10.  
    11.  
    12. int main()
    13. {
    14.    
    15.     int  a=5;
    16.     float b=77.2;
    17.     cout<<timmax(a,b);    
    18.    
    19.    
    20.     getch();
    21.     return 0;
    22.      
    23. }
    Trên DevC++, mình biên dịch được nhưng không chạy được, vì nó bảo phải chuyển kiểu từ float sang int, mình nghĩ, không có sai sót gì về cú pháp thì nó vẫn phải chạy chứ, đằng này nó không chạy. Vậy phải làm sao cho nó chạy?
    Mặc dù nó đã tìm được hàm thích hợp: int timmax(int, float);

    Nếu T1 và T2 có cùng kiểu thì không có gì để nói.
    Tuy nhiên, bây giờ mình muốn viết một template tổng quát hơn cho hàm tìm max thỏa điều kiện: kiểu của trị trả về và kiểu của các tham số phải đôi một khác nhau, mẫu hàm có dạng sau:
    C++ Code:
    1.  T3 timmax(T1 a, T2 b)
    Vậy thì phải viết thế nào vậy các bạn?

    Thanks!
    Đã được chỉnh sửa lần cuối bởi thanhphongcttv : 02-06-2010 lúc 01:30 AM.
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. int main(){    char *_="%c%c%c%c%c%c%c%c%c%c%c%c%c%c";int __=3**_+5;
    4.     printf(_,__,__-12,__-19,__-6,__-12,__-4,__-12,__-5,__-6,__-13,__-17,__,__,__+2);
    5.     getch();return 0;}

  2. #2
    Ngày gia nhập
    12 2009
    Bài viết
    190

    Tớ chạy ở VS thì không thấy sai gì cả. Chắc DEV không "xịn" bằng

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Bạn thử đoạn này :
    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4.  
    5. template< class ResultType, class T1, class T2 >
    6. ResultType find_max( const T1 a, const T2 b )
    7. {
    8.     if( a > b )
    9.         return static_cast< ResultType >( a );
    10.     else   
    11.         return static_cast< ResultType >( b );
    12. }
    13.  
    14.  
    15. int main()
    16. {
    17.     int x = 4;
    18.     float y = 6.0;
    19.     double result = find_max< double, int, float >( x, y );
    20.     cout << result << endl;
    21. }

  4. #4
    Ngày gia nhập
    08 2009
    Bài viết
    148

    Cám ơn bạn! Quả là một cách làm rất hay.
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. int main(){    char *_="%c%c%c%c%c%c%c%c%c%c%c%c%c%c";int __=3**_+5;
    4.     printf(_,__,__-12,__-19,__-6,__-12,__-4,__-12,__-5,__-6,__-13,__-17,__,__,__+2);
    5.     getch();return 0;}

Các đề tài tương tự

  1. Dịch vụ Rip Templates php.clone,copy,rip themes.Thiết kế web Website giá rẻ
    Gửi bởi manhhoang1900 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 08-06-2017, 02:16 PM
  2. Dịch vụ Rip Templates php.clone,copy,rip themes.Thiết kế web Website giá rẻ
    Gửi bởi manhhoang1900 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 26-04-2012, 03:08 PM
  3. Ẩn hiện control trong Item Templates của DataList như thế nào!
    Gửi bởi gnirt69 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 11-12-2011, 11:16 AM
  4. Làm thế nào để cắt nhỏ trương trình sử dụng Function templates
    Gửi bởi thich_it trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 08-10-2011, 11:26 AM
  5. Joomportal.org - cung cấp joomla templates...
    Gửi bởi joomportal.org trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 20-06-2010, 02:08 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn