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

Đề tài: Không dùng được một hàm khai báo ở file khác

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    8

    Mặc định Không dùng được một hàm khai báo ở file khác

    Chào các bạn,

    Mình đang gặp một lỗi thế này

    File NtpTime.hxx

    C++ Code:
    1. #ifndef NTP_HXX
    2. #define NTP_HXX
    3.  
    4. //include "NtpTime.cxx"
    5.  
    6. class NtpTime
    7. {
    8.     public:
    9.         ///
    10.         NtpTime( u_int32_t sec, u_int32_t frac ): seconds(sec), fractional(frac)
    11.         {}
    12.         ;
    13.         ///
    14.         NtpTime()
    15.         {
    16.             *this = getNtpTime();
    17.         };
    18.         ///
    19.         u_int32_t getSeconds()
    20.         {
    21.             return seconds;
    22.         };
    23.         ///
    24.         u_int32_t getFractional()
    25.         {
    26.             return fractional;
    27.         };
    28.         ///
    29.         void print();
    30.     private:
    31.         u_int32_t seconds;
    32.         u_int32_t fractional;
    33.  
    34.         friend NtpTime getNtpTime();
    35. };
    36.  
    37. //extern NtpTime getNtpTime();
    38.  
    39. #endif // NTP_HXX


    File NtpTime.cxx
    C++ Code:
    1. #include "NtpTime.hxx"
    2.  
    3. NtpTime getNtpTime()
    4. {
    5.     struct timeval now;
    6.     int err = gettimeofday(&now, NULL);
    7.     assert( !err );
    8.  
    9.     NtpTime result ( now.tv_sec, now.tv_usec*4294);
    10.  
    11.     return result;
    12. }

    Khi mình compile thì nó cứ bị báo là hàm getNtpTime trong file NtpTime.hxx chưa được khai báo.
    Cụ thể là dòng code: *this = getNtpTime();

    Mình thử thêm dòng code extern NtpTime getNtpTime(); vào trong file NtpTime.hxx thì nó báo NtpTime không phải là một type.

    Các bạn cho mình lời khuyên với

    Cảm ơn nhiều
    Đã được chỉnh sửa lần cuối bởi haluxu : 11-04-2012 lúc 10:30 AM. Lý do: Sửa bài cho đẹp

  2. #2
    Ngày gia nhập
    03 2011
    Bài viết
    8

    Mình sửa được rồi,
    Phải bỏ friend trong class

    Thanks everybody

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

  1. Làm sao để biết người dùng đang chọn tab nào khi khai báo động?
    Gửi bởi dkseoer trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 29-05-2012, 02:54 PM
  2. Kỹ thuật C++ Dùng được hàm không có trong tệp khai báo???
    Gửi bởi VitaminC trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 05-01-2012, 09:04 AM
  3. Kỹ thuật C tính tổng 2 phân số dùng khai báo cấu trúc !!!
    Gửi bởi loveboom3012 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: 03-08-2011, 10:42 AM
  4. taị sao các biến static khi khai báo để dùng được lại phải khai báo lại trước hàm main ? ?
    Gửi bởi anhnpson trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 15-06-2011, 08:18 PM
  5. Chạy 1 file .exe trong 1 file .exe khác
    Gửi bởi ashark trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 8
    Bài viết cuối: 24-07-2009, 03:00 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