这个类是哪地方定义错了,有解释看不懂。。
问题如下(红色的就是问题,编译不通过):
#include <iostream>类
using namespace std;
struct base {
base(string s):basename(s) { }
string name() { return basename;}
virtual void print(ostream &os) { os<<basename; }//1.没有与操作符<<匹配的运算符
private:
string basename;
};
struct derived:public base
{
derived(string s2,int n):base(s2),mem(n) { }
void print(){ print(ostream &os);os<<" "<<mem;}//2.ostrea,不允许使用类型名
private:
int mem;
};
int main()
{
base b("English");
derived d("English",6);
return 0;
}
ostream& operator << (ostream& os, const derived& d)
{
os << "第一个 " << f.one << "第二个 " << f.two << endl;
return os;
}
//string basename; 改成
char basename[36];