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

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

0

2个回答

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

 friend istream &operator>>(istream &in, Student &s)
2
caozhy
weixin_45841714 正解
大约 3 年之前 回复
qq_34837055
qq_34837055 确实可以了!!!太谢谢了
大约 3 年之前 回复

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;
}

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++Error2208:...尝试引用已删除的函数
C++Error2208:…尝试引用已删除的函数在使用自己编写的类实例化c++stl容器vector时,调用了vector.erase()方法,结果编译器报了以下错误 错误 C2280 “(类名)::operator =(const rc17::FindRegion &)”: 尝试引用已删除的函数 F:\vs2015\VC\include\xutility 2581 从错误
error:尝试引用已删除的函数或已显式删除函数
很基础的操作在重载运算符的时候,尤其是<<和>>运算符重载,我们也许会遇到这个问题,一般情况下就是函数的声明没有写好,如这样的声明:friend std::ostream operator<<(std::ostream &out, <class Type> &G)这个错误就是operator前没有加取地址符号,加上就可以解决问题。friend std::ostream &operator<<(std
error C2280: 尝试引用已删除的函数
编程时的一些小问题 class A : public B { className objectName; } 结果在 A * a = new A() 时提示错误 “error C2280: “尝试引用已删除的函数” 结果发现问题所在:在 className objectName 中,其析构函数没有 public 造成的。 即: class classNa...
智能指针(四):unique_ptr浅析
前言 unique_ptr这个指针是C++11标准时被引入标准库的,有一种说法称它是boost::scoped_ptr的一个分身,并且它在C++11的时候“转正”了,但是scoped_ptr还被留在boost库中,看来没有转正的机会了,不过unique_ptr与scoped_ptr确实很像,unique_ptr只比scoped_ptr多了一个移动语义,可以通过std::move()函数来转移内部...
c++ 11 中显式默认设置的函数和已删除的函数 总结
今天在一个类中看到如下代码不是很懂,原来是c++11 新特性 RateTimer(const RateTimer&amp;amp;) = delete; //不可拷贝/不可赋值 RateTimer&amp;amp; operator=(const RateTimer&amp;amp;) = delete; 在 C++11 中,默认函数和已删除函数使你可以显式控制是否自动生成特殊成员函数。 已删除的函数还可为您提...
C++“(已隐式声明)--它是已删除的函数 ” “尝试引用已删除的函数”知识点MARK
今天写一个简单的文件处理工具类时遇到了一个新bug,是一个之前忽略掉的知识点,特此mark一下。 错误如下: c++类在初始化的时候有两种方式: 1. M_CLASS m_class(...); 2. M_CLASS m_class = M_CLASS(...); 编译器对二者处理的不同之处在于:前者通过构造函数直接对对象m_class中的成员变量进行赋值,而后者则是先初始化一个临...
使用 STL 中的 unordered_map 存储某些对象遇到的编译问题
笔者在使用openCV时用到了 unordered_map,例如: std::unordered_map&amp;lt;cv::Vec3b, uint&amp;gt; cntMap; 在VS2017下编译时遇到了如下错误提示: 错误    C2280    “std::hash&amp;lt;_Kty&amp;gt;::hash(const std::hash&amp;lt;_Kty&amp;gt; &amp;amp;)”: 尝试引用已删除的函数 ...
实战c++中的智能指针unique_ptr系列-- unique_ptr与lambda的错误结合(尤其是捕获lambda中的unique_ptr)
lambda表达式是C++11新引入的东西,给我们带来了很多的方便,使得代码简洁明了。但是当我们把unique_ptr和lambda表达式结合的时候,错误就往往会出现,而且是致命的。直接看看下面的代码:#include "stdafx.h" #include <memory> #include <vector> #include <algorithm>class Message { public:
利用C++11原子量atomic实现自旋锁详解
一、自旋锁 自旋锁是一种基础的同步原语,用于保障对共享数据的互斥访问。与互斥锁的相比,在获取锁失败的时候不会使得线程阻塞而是一直自旋尝试获取锁。当线程等待自旋锁的时候,CPU不能做其他事情,而是一直处于轮询忙等的状态。自旋锁主要适用于被持有时间短,线程不希望在重新调度上花过多时间的情况。实际上许多其他类型的锁在底层使用了自旋锁实现,例如多数互斥锁在试图获取锁的时候会先自旋一小段时间,然后才会休眠...
关于“函数返回CStringArray的问题”的说明
关于“函数返回CStringArray的问题”的说明 LYONS:        VC++ 5.0        WIN95        本人在用VC++ 5.0 开发一应用程序时遇到如下问题:        从CStdioFile 类派生CSearch 类:         class CSearch : public CStdioFile        其中一个成员函数
ArcEngine一个具有相同标识*******的程序集。请尝试移除其中一个重复的引用。
问题:错误已导入一个具有相同标识“ESRI.ArcGIS.SystemUI, Version=10.2.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86”的程序集。请尝试移除其中一个重复的引用。 d:\Program Files (x86)\ArcGIS\DeveloperKit10.2\DotNet\ESRI.ArcGIS.SystemU...
unique_ptr 尝试引用已删除的函数
我使用unique_ptr,来自动释放内存空间,代码修改完之后,报如下错误:rnrn错误 2 error C2280: “std::unique_ptr>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)”: rn尝试引用已删除的函数 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory0 593 1 GuiZ.CPrice_CPlusPlusrnrnrn可能的原因是:某unique_ptr在被调用了std::move之后再次被使用?rn有啥更好的办法来让C++自己释放内存吗?
c2280 Cpen 尝试引用已删除的函数
今天给学生上计算机地图制图,绘制地图符号的代码 学生的电脑安装的是vs2017 出现了这个问题。。。。 c2280 Cpen 尝试引用已删除的函数
Qt文档阅读笔记-qRegisterMetaType()的原理及其使用
目录   官方介绍 博主栗子     官方介绍 调用这个函数去注册类型T,这个T要使用Q_DECLARE_METATYPE()进行声明,返回meta type id,如下: int id = qRegisterMetaType&amp;lt;MyStruct&amp;gt;(); 这个函数需要他在被调用时有完整的定义。如果是指针类型他需要有完整的定义。使用Q_DECLARE_OPAQUE_PO...
qmlRegisterType 的功能以及用法
qmlRegisterType 是一个可以将C++实现的类在QML中调用的,连接C++和QML的一个工具,非常重要的函数!!!首先来看QtHelp关于qmlRegisterType 的介绍 int qmlRegisterType(const char * uri, int versionMajor, int versionMinor, const char * qmlName) Thi
C# WINFORM 请删除对不在目标框架中的程序集的引用,或考虑重新确定项目的目标 解决方法
警告 ?未能解析引用的程序集“XianXian.DAL, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL”,因为它对不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中的“System.Data.OracleClient, Version=4.0.0.0, Culture=
OTL调用存储过程和函数
OTL简单介绍:        OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个C++操控关系数据库的模板库,最新版本4.0.104,参见http://otl.sourceforge.net/,下载地址http://otl.sourceforge.net/otlv4_h.zip。优点:a. 跨平台      b. 运行效率高,与C语
Windows Media Player 无法找到此文件。如果您正在尝试播放、刻录或同步媒体库中
解决方法: 删除C:\Users\你的用户名\AppData\Local\Microsoft\Media Player目录下的所有文件。。。 然后再重启media player。。。
拷贝构造函数,拷贝赋值运算符,析构函数
拷贝构造函数  如果一个构造函数的第一个参数是自身类类型的引用,且额外参数都有默认值,则此构造函数是拷贝构造函数。  每个成员的类型决定了它如何拷贝:类类型的成员,会使用拷贝构造函数来拷贝;内置类型的成员则直接拷贝。哪些情况下会使用拷贝初始化1.用=定义变量时2.将一个对象作为实参传递给一个非引用类型的形参3.从一个返回类型为非引用类型的函数返回一个对象4.用花括号列表初始化一个数组中的元素或一个
C++学习笔记16,C++11中的显式的默认构造函数以及显示删除默认构造函数
在早期的C++中,如果需要一个不接收任何参数的构造函数C++11中提供了
jquery动态加载 去除js
!-- 这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getscript("test.js");就ok了。 jquery 动态加载js三种方法 网页特效"> $.getscript("test.js"); //方法二 function loadjs(file){      v
对chrome中出现已尝试对扩展程序降级的问题的一点尝试
今天碰到这个问题,是IDM无法在chrome中添加扩展程序。百度了一下,网上所说的方法 1.http://tieba.baidu.com/p/2020532842,正如在里面提到的,在preferences和Extensions中相对应删除和修改。但是我按照它的方法解决,依旧出现; 2.采用排除法,最后发现问题出现在...\User Data\Default中的Secure Preferenc
C++类中被删除的析构函数
在c++ primer(Page 553)中提到 如果在基类中有一个不可访问或删除掉的析构函数,则派生类中合成的默认和拷贝构造函数将是被删除的 到底什么情况才会有删掉的析构函数呢?class Test{ public: Test(){ a=10; } int a; ~Test()=delete; };在这个类中 ,如果尝试在直接创建一个局部的Tes
Chapter9——构造函数和析构函数的作用是什么?什么时候需要自己定义构造函数和析构函数?
构造函数的作用是实现数据成员的初始化,析构函数的作用在撤销对象占用的内存之前完成一些清理工作,也可以理解成“用户希望在最后一次使用对象之后所执行的任何操作”。 如果没有定义构造函数,C++系统会自动生成一个构造函数,只是这个构造函数是空的,也没有参数,所以如果用户需要初始化数据成员需要定义构造函数。 如果没有定义析构函数,C++系统会自动生成一个析构函数,但它实际上什么操作都不进行。想让析构函
jquery动态绑定具有相同名称的多个元素
$(document).on('click','要选择的元素',function(){}); on() 方法在被选元素及子元素上添加一个或多个事件处理程序。 &amp;lt;tbody&amp;gt; &amp;lt;c:forEach items=&quot;${list}&quot; var=&quot;list&quot;&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;input t
Powerpoint2007中清除“外部图片”的一个方法
Powerpoint2007中清除“外部图片”的一个方法
正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。问题的解决方法!
       今天调试的时候突然发现出现一个这样的错误:正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。       查了网上的解决方法:这个问题只需要把vs2005菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉即可!如果异常(except
sysinternals系列工具源代码
sysinternals系列工具的源代码,作者现高就微软.
ksoap2 精简版jar包
精简版ksoap2.jar包,已删除与Android冲突的类,直接引用。
项目文件必须在引用列表中包含.net framework 程序集“WindowsBase,PresentationCore,PresentationFramework”。错误处理!...
  转自http://blog.csdn.net/emily1900/article/details/5655726 今天在建的silverlight项目中的测试主页里面加图片背景,结果出现了这个错误: 项目文件必须在引用列表中包含.net framework 程序集“WindowsBase,PresentationCore,PresentationFramework”。   其实这个问题...
在尝试重新安装一个服务时遇到这样的错误:指定服务已标记为删除
指定服务已标记为删除 在尝试重新安装一个服务时遇到这样的错误: An exception occurred during the Install phase. System.ComponentModel.Win32Exception: 指定的服务已标记为删除。 不想把服务改名,于是Google了一下。以下是在http://support.microsoft.com/kb/823942/zh-cn上找到的内容: 当您尝试在基于 Microsoft Windows 2000 的计
c# 正在尝试解析依赖项“XXXXXX (≥ 4.10)”。 “XXXX”已拥有为“XXXX”定义的依赖项
正在尝试解析依赖项“XXXXXX (≥ 4.10)”。 “XXXX”已拥有为“XXXX”定义的依赖项正在尝试解析依赖项“XXXXXX”。“XXXXX”已拥有为“XXXXX”定义的依赖项。解决办法:打开扩展和更新,将Nuget包管理器 进行更新 即可解决...
Internet Explorer 已不再尝试还原此网站。该网站看上去仍有问题。
近日浏览163新闻网时,发现打开一个链接后很快就会提示“Internet Explorer 已不再尝试还原此网站。该网站看上去仍有问题。”,如下图: 这个有点奇怪,打开其它网站比如csdn就没有问题,包括百度上搜索出来的结果点进去也同样没有问题,难道是163网站确实有问题?我去同事电脑上试了一下,就是正常的,没有我的问题,那说明还是我的电脑有问题。 然后直接百度“Internet Explore
Reflexi 反编译代码
http://qiankanglai.me/2016/12/02/HIT/ 本文是Assembly Manipulation and C# / VB.NET Code Injection的翻译,已得到作者授权。该教程作者(亦工具作者)现在在微软开发UnityVS… 本文使用的老版本界面与最新版本有所不同,而且内容覆盖的功能比较全,但介绍的比较笼统;之后我会结合Unity写一
解决Chrome尝试对插件进行降级问题
解决在Chrome里安装插件,出现“对插件进行降级处理”这一类问题。
.NET网站发布常见问题解决方案
1、应用程序中服务器错误解决方案:点击IIS的应用程序池,选择发布的网站,双击,将.Net Framework版本,改成4.0的,如下图2、HTTP 错误 500.21 - Internal Server Error原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装解决方案:开始-&amp;gt;所有程序-&amp;gt;附件-&amp;gt;鼠标右键点击“命令提示符”-&amp;gt...
记一次页面失效,你正在尝试访问一个无效页面的错误
导致原因: 自己用submitButton,但是启用了fireAction,然后我在processFormRequest中获取这个事件,第一次是正常的,当我第二次在查询的时候,就报无效页面的错误。 解决办法:将submitButton改成Button就可以,或者将submitButton的事件去掉,直接getID,也能解决。 不知道是什么原因。
Internet Explorer 已不再尝试还原此网站 该网站看上去仍有问题
Internet Explorer 已不再尝试还原此网站。该网站看上去仍有问题。   往往是IE8引起的。 这个问题很经典。 XP系统经常会遇到。   好像好多人都在问; 答案大多是 重置默认设置(作用好像不是很大), 禁用某些插件(好像时常会有些作用) 重装IE6, 重装系统 ......     呵呵, 其实换个浏览器是最好方法。     当然, 继续用
CCS3.3关于函数参数的引用
在CCStudio3.3中编写程序时,为了让函数返回多个值,想到了引用参数的用法,于是在函数参数中采用&a方式。但编译时发现CCS中不支持函数参数的引用,总是报错,将引用参数的方式换为指针,编译链接通过! 通过查找资料得到结果为“传统的c中,函数在调用时参数是通过值来传递的,这就是说函数的参数不具备返回值的能力。所以在传统的c中,如果需要函数的参数具有返回值的能力,往往是通过指针来实现的。”引用
VS清除打开项目时的TFS版本控制提示
对于曾经做过TFS版本控制的项目,在版本控制服务不可用的时候,依然会在每次打开项目的时候都提示:当前项目是版本控制的项目,但是当前版本控制不可用,balabala的信息,如果是需要进行版本控制的项目在临时无法连接到版本控制服务器的时候出现这个提示,也属于正常的,但是如果是不再需要进行版本控制的项目,还这么次次打开都这么提示,就有些受不了——关键是,没有TFS,只能想办法删除了。 在项目中要永
文章热词 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据尝试学习 数据库已选课程查询