回 帖 发 新 帖 刷新版面

主题:请教

#include<iostream>
using namespace std;
class studentid{
    int value;
public:
    studentid(int id=0){
        value=id;
        cout<<"assigning student id"<<value<<"\n";
    }
};
class student{
    string name;
    studentid id;
public:
    student(string n="noname",int ssid=0){
        cout<<"constructing student"<<n;
        name=n;
        studentid id(ssid);
    }
};
int main()
{
    student s("randy",58);
}
提示出错:E:\VC文件库\9.cpp(17) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversion)
请各位解答下

回复列表 (共2个回复)

沙发

你一定是建了一个Win32Application然后添加了一个文件写上了上述的代码

你不用这样。(你的代码里有“不适合”在这种模式下的东东)打开VC。直接建一个C++Source file。 写上述代码。编译。我想你的代码是可以通过的。

板凳

class student{
    string name;
    studentid id;
public:
    student(string n="noname",int ssid=0){
        cout<<"constructing student"<<n;
        name=n;
        studentid id(ssid);
    }
};

改为:
class student{
    char *name;
    studentid id;
public:
    student(char *n="noname", int ssid=0){
        cont<<"constructing student"<<n;
        name=n;
        studentid id(ssid);
    }
};

我来回复

您尚未登录,请登录后再回复。点此登录或注册