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

Đề tài: [VC++ 2005] Error C2679 ! ?

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    0

    Mặc định [VC++ 2005] Error C2679 ! ?

    Code:
    #include <iostream>
    #include <conio.h>
    using std::string;
    using std::cout;
    using std::endl;
    
    class GradeBook
    {
    public:
        GradeBook(string name)
        {
            setCourseName(name);
        }
        void setCourseName(string name)
        {
            courseName= name;
        }
        string getCourseName()
        {
            return courseName;
        }
        void displayMessage()
        {
            cout << "Welcome to the grade book for\n" << getCourseName()
                       << "!" << endl;
        }
    private :
        string courseName;
    };
    int main()
    {
        GradeBook myGradeBook("Lap trinh C++");
        getche();
        return 0;
    }
    Lỗi : c:\documents and settings\administrator\my documents\visual studio 2005\projects\classes2005\classes2005\main.cpp(25) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)

    Em code bên Dev-C thì chạy bình thường, nhưng khi chuyển qua VS 2005 thì bị lỗi trên.

  2. #2
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    ban đầu là như thế này:
    cout << "Welcome to the grade book for\n" << getCourseName()
    << "!" << endl;
    sửa thành:
    cout << "Welcome to the grade book for\n" << (const char*)getCourseName()
    << "!" << endl;

    nhưng mình nhớ trong VC6 nó tự động chuyển kiểu mà, có lẽ đây lại là 1 điểm khác giữa VC6 và VC8
    Đã được chỉnh sửa lần cuối bởi nguyentuan2 : 05-01-2007 lúc 02:11 AM.

  3. #3
    Ngày gia nhập
    01 2007
    Bài viết
    0

    Thêm (const char*) thì bị lỗi này đây... Cảm ơn sự giúp đỡ của bạn, mình chỉ mới bắt đầu học thôi.
    error C2440: 'type cast' : cannot convert from 'std::string' to 'const char *'
    No user-defined-conversion operator available that can perform this conversion, or the operator cannot be calle

  4. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    cout << "Welcome to the grade book for\n" << getCourseName()
    << "!" << endl;

    Cái lệnh này trên 2 dòng hả? Dreaminess nghĩ rằng bạn đã để nó thành 2 dòng nên đã bị lỗi vậy. Thử lại xem sao?

    Hoặc viết thử câu lệnh đó thành :
    cout << "Welcome to the grade book for\n" << getCourseName();

    Chúc may mắn. Nếu không đúng thì Dreaminess cũng chịu, vì Dreaminess chưa có biết gì về cái bộ Visual C++ 2005 này. (Đang chờ bộ Visual Studio 2007 ra đời, thì mới tìm hiểu. He he)
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  5. #5
    Ngày gia nhập
    01 2007
    Bài viết
    0

    vậy thua rồi, em viết 1 dòng chứ có 2 dòng đâu. mới bắt tay học C++, viết ứng dụng console mà bị lỗi thế này thí bó tay. Chuyển qua sử dụng Dev-V cho chắc.

  6. #6
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Mặc định [VC++ 2005] Error C2679 ! ?

    Thử thay dòng đó bằng dòng sau đây xem sao?

    std::cout << "Welcome to the grade book for\n" << getCourseName()<< "!" << endl;
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  7. #7
    Ngày gia nhập
    10 2006
    Bài viết
    4

    Đấy là do bạn chưa include file này

    #include <string>

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

  1. Lỗi 2005 link error - already defined in trong C++/CLI
    Gửi bởi gachoai trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 25-09-2013, 12:33 PM
  2. Lỗi với cin trong khi nhập ở class (error C2679: binary '>>'...)
    Gửi bởi kuhoang0512 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 9
    Bài viết cuối: 04-11-2011, 11:57 AM
  3. Array Kiểu VECTOR error C2679: binary '<<' : no operator found
    Gửi bởi nndung179 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: 18-11-2010, 02:58 PM
  4. error C2679: binary '<<' : no operator defined which takes a right-hand operand
    Gửi bởi hunter_hikaru trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 17
    Bài viết cuối: 21-02-2009, 06:09 PM
  5. VC++ 2005 EE Error!!!
    Gửi bởi whamy04 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 6
    Bài viết cuối: 21-03-2007, 06:39 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