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

问题描述

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

#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();
}

解决方案

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

 friend istream &operator>>(istream &in, Student &s)

解决方案二:

VS2015双击错误得到的提示位置在这
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;
}

解决方案三:

有时间再来研究研究 。。。。。 。。

时间: 2024-11-18 15:02:04

尝试引用已删除的函数???的相关文章

源代码-错误提示:它是已删除的函数,求解答,谢谢!

问题描述 错误提示:它是已删除的函数,求解答,谢谢! //程序片段意图:判断程序目录下是否存在input.txt文件,若不存在,则提示输入文件路径 //错误:函数调用出错input _ error(input) 中"input"被划出,提示调用函数是已删除函数 == int input_error(fstream i){ if (!i){ cerr << endl << "Fail to open the file!" << en

详解在C++中显式默认设置的函数和已删除的函数的方法_C 语言

在 C++11 中,默认函数和已删除函数使你可以显式控制是否自动生成特殊成员函数.已删除的函数还可为您提供简单语言,以防止所有类型的函数(特殊成员函数和普通成员函数以及非成员函数)的参数中出现有问题的类型提升,这会导致意外的函数调用. 显式默认设置的函数和已删除函数的好处 在 C++ 中,如果某个类型未声明它本身,则编译器将自动为该类型生成默认构造函数.复制构造函数.复制赋值运算符和析构函数.这些函数称为特殊成员函数,它们使 C++ 中的简单用户定义类型的行为如同 C 中的结构.也就是说,可以创

调制调解器已删除问题解决方法

  故障一.可能是电脑与调制解调器连接不良; 解决方法:首先检查下调制解调器是否和毛正常连接的情况,如果连接出了问题的话,就重启下猫,在开启看电脑故障是否解决. 故障二.可用用将netware等拨号上网相关的服务给卸载了,导致提示调制解调器已删除的电脑故障. 解决方法:如果是卸载了相关服务的话,可以在到卸载的服务将其安装即可.然后在将那个 调制解调器已删除连接,点右键删除,新建一个连接,即可恢复. 故障三.上述方法都行不通的话,就在开始菜单上打开"控制面板"中双击"系统&qu

如何在Linux中恢复仍在活动进程中的已删除文件

使用终端恢复你 Linux 系统上仍在运行进程的已删除文件的快速指南. 许多情况下,删除的文件都可以恢复,比如在该文件有活动的进程在操作它,并且目前被单个或多个用户使用时.在 Linux 系统中,每个当前正在运行的进程都会获得 ID,其被称之为进程标识符 "PID",并将它们存放在 /proc 目录中.这正是我们恢复仍在运行的进程中(具有PID)已删除的文件所需要的东西.这里就是介绍我们如何做到这一点的. 假设你打开了一个压缩文件,之后你删除了这个文件.为了演示目的,压缩文件称为 &q

c++-C++引用变量问题,函数中临时变量返回引用

问题描述 C++引用变量问题,函数中临时变量返回引用 C++ primer plus第六版引用一节,说不能在函数中新建一个变量,并将其引用返回.道理我都懂,就是说函数调用完后,那部分临时内存会释放.可是为什么我自己写的下述代码不报错,反而能正常运行呢? #include using namespace std; struct free_throws //此处定义一个结构体 { int i; }; const free_throws & clone2(free_throws & ft1, f

尝试访问已卸载的 AppDomain。 (异常来自 HRESULT:0x80131014)

问题描述 用了一个第三方的组件,vs里面可以运行,IIS下运行就报错了.[求解]说明:执行当前Web请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.AppDomainUnloadedException:尝试访问已卸载的AppDomain.(异常来自HRESULT:0x80131014)源错误:行24:content.Append(@"翻译说明:语音识别中重点翻译"命令识别"[Commandrec

历史记录中,已删除部门的数据权限如何授权?

问题描述 有一个数据权限问题一直很纠结,历史记录中,已删除部门的数据权限,举例如下:离职员工列表,此列表主要显示离职员工,但是离职员工所属的部门可能已经删除了,现要对操作员授此页面的数据权限(能查看哪些部门),已删除的部门在授权的时候不可能列出来啊,请问这部分数据权限怎么授? 解决方案 解决方案二:你设计表的时候部门有木有单独作为一张表?如果有的话,如果部门删除了,是把记录删除了,还是表中专门有字段来表示是否删除(不删除记录)?解决方案三:设计得根本不合理.机构肯定会被裁撤.改名.合并的,怎么能

360云盘如何找回已删除文件

  360云盘找回已删除文件方法:在云盘客户端.网页版等处进行的删除操作,360云盘都将暂时将这些文件删除到云盘回收站里.这样如果用户进行了某些误操作,想找回文件,就可以去云盘网页版回收站找回这些文件.

c++问题-C++的类中怎么在一个函数中引用上一层的函数

问题描述 C++的类中怎么在一个函数中引用上一层的函数 在同一个类中怎么引用先定义的函数来定义函数?比如在一个时期类的定义中,一个日期加1的函数中怎么调用先定义的一个求是否闰年的函数. 解决方案 C++定义隐式转换函数将类转换为内部的一个成员变量c++函数默认参数是一个好的设计吗? 解决方案二: 直接在函数内调用就可以了.不知道你说的上一层是什么意思.是基类的函数还是集合类所属的对象的函数,前者直接调用,或者用 基类类名::函数名后者用构造函数传对象指针 解决方案三: 同一个类中的函数都是通过t