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

Đề tài: Lập trình hướng đối tượng | Sử dụng template trong C++ như thế nào?

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

    Mặc định Lập trình hướng đối tượng | Sử dụng template trong C++ như thế nào?

    em có đoạn code sau với Book là 1 class với các trừong ( tên .... ) , sau đó em đẩy nó vào file
    Code:
    void appendFile()
    {
    	Book aBook;
    	aBook.input();
    	ofstream ofile("Book.txt",ios::app);
    	if (!ofile )
    		cerr << "co loi xay ra! " ;
    	else
    	{
    	ofile << aBook<< endl;
    	cout << "Thong tin da duoc cap nhat vao CSDL" << endl;
    	ofile.close();
    	}
    }
    vấn đề là khi em muốn viết hàm cho 1 object mới là NoteBook aNoteBook ( chỉ khác mỗi 1 trường ) thì em lại phải viết lại một hàm nguyên si như trên, chỉ thay mỗi dòng sau vì hàm input của em nó khác nhau
    Code:
    Book aBook; bằng NoteBook aNoteBook; 
    và Book.txt bằng NoteBook.txt
    em xin hỏi các bro, làm sao viết được 1 hàm template như kiểu này
    Code:
    template <class myType>
    myType GetMax (myType a, myType b) {
     return (a>b?a:b);
    }
    để có thể chỉ cần dùng 1 hàm, mong các bro chỉ giáo cho, em làm theo mẫu nhưng không được

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

    Trích dẫn Nguyên bản được gửi bởi nxhoaf Xem bài viết
    em có đoạn code sau với Book là 1 class với các trừong ( tên .... ) , sau đó em đẩy nó vào file
    Code:
    void appendFile()
    {
    	Book aBook;
    	aBook.input();
    	ofstream ofile("Book.txt",ios::app);
    	if (!ofile )
    		cerr << "co loi xay ra! " ;
    	else
    	{
    	ofile << aBook<< endl;
    	cout << "Thong tin da duoc cap nhat vao CSDL" << endl;
    	ofile.close();
    	}
    }
    vấn đề là khi em muốn viết hàm cho 1 object mới là NoteBook aNoteBook ( chỉ khác mỗi 1 trường ) thì em lại phải viết lại một hàm nguyên si như trên, chỉ thay mỗi dòng sau vì hàm input của em nó khác nhau
    Code:
    Book aBook; bằng NoteBook aNoteBook; 
    và Book.txt bằng NoteBook.txt
    em xin hỏi các bro, làm sao viết được 1 hàm template như kiểu này
    Code:
    template <class myType>
    myType GetMax (myType a, myType b) {
     return (a>b?a:b);
    }
    để có thể chỉ cần dùng 1 hàm, mong các bro chỉ giáo cho, em làm theo mẫu nhưng không được
    Bạn sử dụng class template.

  3. #3
    Ngày gia nhập
    04 2009
    Bài viết
    9

    bạn demo giúp mình đoạn class đó luôn được khôg.Cảm ơn trước nha!

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

    Cậu thử đoạn này xem sao :
    C++ Code:
    1. #include <iostream>
    2. #include <fstream>
    3.  
    4. using namespace std;
    5.  
    6. class Book1 {
    7.     int b;
    8.  
    9. public :
    10.     Book1( int b ):b( b ) {
    11.     }
    12.  
    13.     friend ostream& operator <<( ostream& o, const Book1& rhs ) {
    14.         return o << rhs.b;
    15.     }
    16. };
    17.  
    18. class Book2 {
    19.     int b;
    20.  
    21. public :
    22.     Book2( int b ):b( b ) {
    23.     }
    24.  
    25.     friend ostream& operator <<( ostream& o, const Book2& rhs ) {
    26.         return o << rhs.b;
    27.     }
    28. };
    29.  
    30. template< typename ObjectType >
    31. void append_file( const char* file_name, const ObjectType& obj ) {
    32.     fstream outf( file_name, ios::out );
    33.     outf << obj << endl;
    34. }
    35.  
    36.  
    37. int main() {
    38.     Book1 b1( 1 );
    39.     Book2 b2( 2 );
    40.  
    41.     append_file( "t.txt", b1 );
    42.     append_file( "t.txt", b2 );
    43.  
    44.     return 0;
    45. }

  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    9

    cảm ơn bro nha, mình đang mò thêm

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

  1. Database Điền dữ liệu vào template cho sẵn trong C# như thế nào ?
    Gửi bởi MrDnD trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 05-06-2013, 03:11 PM
  2. Thắc mắc Template (khuôn hình) trong danh sách liên kết đôi ?
    Gửi bởi oxfordthuongyeu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 25-06-2011, 03:42 PM
  3. Lập trình C++ Template trong C++ có ý nghĩa và ứng dụng như thế nào?
    Gửi bởi qc90 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 02-01-2011, 11:10 PM
  4. Sử dụng template trong C++ như thế nào?
    Gửi bởi nothing1010 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 29-11-2010, 09:35 PM
  5. Kỹ thuật C++ Template Method có liên quan gì đến template trong C++ ko?
    Gửi bởi ten_truycap trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 22-10-2010, 11:26 PM

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