qq_34837055 2016-05-26 12:48 采纳率: 100%
浏览 8586
已采纳

尝试引用已删除的函数???

#pragma once
#include
#include
using namespace std;
static int number = 0;
class Student
{
protected:
int m_ID;
string m_Name;
string m_Sex;
string m_Tel;
int m_English;
public:
Student(int ID = 0, string Name = "δ֪", string Sex = "δ֪", string Tel = "δ֪", int English = 0)
{
m_ID = ID;
m_Name = Name;
m_Sex = Sex;
m_Tel = Tel;
m_English = English;
number++;
}
Student(const Student &s)
{
m_ID = s.m_ID;
m_Name = s.m_Name;
m_Sex = s.m_Sex;
m_Tel = s.m_Tel;
m_English = s.m_English;
number++;
}
~Student()
{
number--;
}
friend istream operator>>(istream &in, Student &s)
{
in >> s.m_ID >> s.m_Name >> s.m_Sex >> s.m_Tel >> s.m_English;
return in;
}
friend ostream operator<<(ostream &out, const Student &s)
{
out << s.m_ID << s.m_Name << s.m_Sex << s.m_Tel << s.m_English;
return out;
}
};#pragma once
#include"student.h"
class Graduate :public Student
{
protected:
string m_Majorfield;
string m_Papers;
public:
Graduate(int ID = 0, string Name = "δ֪", string Sex = "δ֪", string Tel = "δ֪", int English = 0, string Majorfield="δ֪", string Papers="δ֪")
:Student(ID,Name,Sex,Tel,English)
{
m_Majorfield = Majorfield;
m_Papers = Papers;
number++;
}
Graduate(const Graduate&s)
{
m_ID = s.m_ID;
m_Name = s.m_Name;
m_Sex = s.m_Sex;
m_Tel = s.m_Tel;
m_English = s.m_English;
m_Majorfield = s.m_Majorfield;
m_Papers = s.m_Papers;
number++;
}
~Graduate()
{
number--;
}
/*friend istream operator>>(istream &in, Graduate &s)
{
in >> s.m_ID >> s.m_Name >> s.m_Sex >> s.m_Tel >> s.m_English >> s.m_Majorfield >> s.m_Papers;
return in;
}
friend ostream operator<<(ostream &out, Graduate &s)
{
out<< s.m_ID <<endl
<<s.m_Name <<endl
<<s.m_Sex <<endl
<<s.m_Tel <<endl
<<s.m_English <<endl
<<s.m_Majorfield <<endl
<<s.m_Papers<<endl;
return out;
}*/
};#pragma once
#include"student.h"
class Undergraduate :public Student
{
protected:
int m_Math;
int m_Cpp;
public:
Undergraduate(int ID = 0, string Name = "δ֪", string Sex = "δ֪", string Tel = "δ֪", int English = 0, int Math = 0, int Cpp = 0)
:Student(ID, Name, Sex, Tel, English)
{
m_Math = Math;
m_Cpp = Cpp;
number++;
}
Undergraduate(const Undergraduate &s)
{

m_ID = s.m_ID;
m_Name = s.m_Name;
m_Sex = s.m_Sex;
m_Tel = s.m_Tel;
m_English = s.m_English;
m_Math = s.m_Math;
m_Cpp = s.m_Cpp;
number++;
}
~Undergraduate()
{
number--;
}
/*friend istream operator>>(istream &in, Undergraduate &s)
{
in>> s.m_ID >> s.m_Name >> s.m_Sex >> s.m_Tel >> s.m_English >> s.m_Math >> s.m_Cpp;
return in;
}
friend ostream operator<<(ostream &out, Undergraduate &s)
{
out< return out;
}*/
};
#pragma once
#include"student.h"
template
class LinkList;
template
class Node
{
private:
T *data;
Node *next;
public:
Node(T t)
{
data = &t;
next = NULL;
}
Node()
{
next =NULL
}
~Node()
{
next = NULL;
}
T SetData(T &t)
{
data = &t;
}
void ShowData()
{
cout << data< }
friend LinkList;
};
template
class LinkList
{
protected:
Node *m_head;
public:
LinkList()
{
this->m_head = NULL;
}
void InsertAtHead(const Node &t)
{
Node *p;
p = new Node(t);
p->next = m_head;
m_head = p;
}
void show()
{
Node *p;
p = m_head;
while (p != NULL)
{
p->ShowData();
p = p->next;
}
cout << endl;
}
};
#include"链表.h"
#include"graduate.h"
#include"undergraduate.h"
template
void main()
{
LinkList list1;
list1.InsertAtHead(Student(5,"xiaosan","man","12132132132",98));
list1.show();
}

  • 写回答

2条回答 默认 最新

  • 小灸舞 2016-05-26 12:55
    关注

    代码太长了
    重载的>>返回值改成引用试试

     friend istream &operator>>(istream &in, Student &s)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统