Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
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.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  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ông cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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