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

Đề tài: redefinition of class help !!!

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    7

    Unhappy redefinition of class help !!!

    C++ Code:
    1. //Animal.h
    2. #include<iostream>
    3. using namespace std;
    4.  
    5. class Animal
    6. {
    7. protected:
    8.     int iName;
    9.     int iSex;
    10.     int iAge;
    11. public:
    12.     virtual int iMilk()=0;
    13.     virtual int iChild()=0;
    14.     virtual void Sound()=0;
    15.     virtual int GetName();
    16.     virtual int GetSex();
    17.     virtual int GetAge();
    18.     virtual void ChangeAge();
    19. public:
    20.     Animal(void);
    21. public:
    22.     ~Animal(void);
    23. };
    mình xây dựng cái này dùng kế thừa cho mấy cái sau. Khi chạy trong C++2005 dùng #pragma once thì không báo lỗi còn khi chạy trong C-Free nó lại không hỗ trợ nên khi chạy thì báo redefinition of class. có cách nào để thay thế #pragma once không? Thanks mấy bạn

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

    Hình như cái đó chỉ là của Microsoft :
    http://msdn.microsoft.com/en-us/libr...05(VS.71).aspx

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    7

    thanks anh !!!
    khi coi thì nó để cái này:
    Specifies that the file will be included (opened) only once by the compiler in a build. This can reduce build times as the compiler will not open and read the file after the first #include of the module..

    vậy có cách nào không dùng #pragma once mà cũng có thể cho nó chạy vậy không?
    Thanks !!

  4. #4
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Cậu thử nhốt hết vào 1 header. Rồi include header này vào.

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

    Dùng macro guard !
    C++ Code:
    1. #ifndef STHING
    2. #define STHING
    3.  
    4. #endif

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    7

    Mặc định redefinition of class help !!!

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Cậu thử nhốt hết vào 1 header. Rồi include header này vào.
    tại cái header này mình dùng kế thừa cho nhiều class khác nửa nên có tình trạng lập lại như vậy.

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Dùng macro guard !
    C++ Code:
    1. #ifndef STHING
    2. #define STHING
    3.  
    4. #endif
    bạn có thể chỉ rõ hơn không? Thông cảm mình là newbie
    Thanks hai bạn nhiều

  7. #7
    Ngày gia nhập
    11 2008
    Bài viết
    186

    Là thế này:

    C++ Code:
    1. //Animal.h
    2.  
    3. #ifndef __ANIMAL_H__
    4. #define __ANIMAL_H__
    5.  
    6. #include<iostream>
    7. using namespace std;
    8.  
    9. class Animal
    10. {
    11. protected:
    12.     int iName;
    13.     int iSex;
    14.     int iAge;
    15. public:
    16.     virtual int iMilk()=0;
    17.     virtual int iChild()=0;
    18.     virtual void Sound()=0;
    19.     virtual int GetName();
    20.     virtual int GetSex();
    21.     virtual int GetAge();
    22.     virtual void ChangeAge();
    23. public:
    24.     Animal(void);
    25. public:
    26.     ~Animal(void);
    27. };
    28.  
    29. #endif // __ANIMAL_H__
    Ước mơ vươn tới Linux Developer.
    Đang trong quá trình tập luyện:
    1. C system programming
    2. GNU distribution
    3. Gtk+/Gnome Application Programming.

    Bác nào giỏi lĩnh vực này giúp Kim với nha. Kim cám ơn nhiều !!!

  8. #8
    Ngày gia nhập
    11 2008
    Bài viết
    7

    Thank's so much !!!

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

  1. Mã nguồn C Lỗi Lỗi see reference to class template instantiation 'std::list<_Ty>' being khi sử dụng Iterator cho class tự xây dựng
    Gửi bởi Mr_Chan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 10-07-2013, 01:58 AM
  2. Lỗi: C2381: 'exit' : redefinition; __declspec(noreturn) differs trong opengl(C++) sửa như thế nào ?
    Gửi bởi oneclicklogin trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 12-10-2012, 10:11 AM
  3. Mã nguồn C Lỗi Struct type redefinition
    Gửi bởi vipzero trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 30-04-2012, 02:55 PM
  4. Lỗi: error C2440: 'initializing' : cannot convert from 'class xxx *' to 'class xxx *' sửa như thế nào?
    Gửi bởi Nupakachy trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 16-06-2011, 08:54 PM
  5. Tại sao có struct rồi còn sinh ra class. Lợi thế của class là gì?
    Gửi bởi car0ot trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 24
    Bài viết cuối: 24-10-2008, 05: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