栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++程序设计课后习题6-27

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++程序设计课后习题6-27

【题目】 定义一个Employee类,其中包括表示姓名、街道地址、城市和邮编等属性,包括setName()和display()函数。display()使用cout语句显示姓名、街道地址、城市和邮编等属性,函数setName()改变对象的姓名属性,实现并测试这个类。

 题目描述已经

<使用平台:Microsoft visual studio>

代码如下:

#include
using namespace std;
#include

class Employee
{
public:
	Employee(string City, int Post, string Name, int Street, int Tel)
		:name(Name),street(Street),tel(Tel),city(City),post(Post){count++;}
	Employee() :name("NULL"), street(), tel(), post(), city("NULL") {};
	Employee(const Employee& e)  //拷贝来自相同城市的雇主信息
	{
		string eName;
		int eStreet=0, eTel=0;
		//string* ename = new string(eName);
		//int* estreet = new int(eStreet);
		//int* etel = new int(eTel);
		city = e.city;
		post = e.post;
		cout << endl << "Now you're copying the information from the same city --" << e.city << endl;
		cout << "[warning]you should set your name|street|telephone again,please enter:" << endl;
		cout << "Name:";
		cin >> eName;
		cout << "Street:";
		cin >> eStreet;
		cout << "Tel:";
		cin >> eTel;
		name = eName;
		tel = eTel;
		street = eStreet;
		count++;
	}
	void setName(string Name) {
		name = Name;
		cout << endl << "...... Now you are changing its name" << endl;
	}
	void display() {
		cout << endl;
		cout << "Name: " << name << endl;
		cout << "Street: " << street << endl;
		cout << "Tel: " << tel << endl;
		cout << "City: " << city << endl;
		cout << "Postcode: " << post << endl;
	}
	~Employee() { count--; }
	static void showcount() {
		cout << endl << "Now the NUMBERS of employees are " << count << endl;
	}
private:
	string name, city;
	int street, tel, post;
	static int count;
};

int Employee::count = 0;

int main()
{
	Employee e_inChongqing("重庆", 400000, "A", 001, 12356);
	Employee e_inXian("西安", 710000, "B", 002, 12457);
	Employee e_inZhengzhou("郑州", 450000, "C", 003, 16728);
	Employee e_null;


	Employee e_new(e_inZhengzhou);  //拷贝来自郑州的雇主的城市和邮编信息
	e_new.setName("D");

	Employee e_e[]= { Employee(e_inChongqing),Employee(e_inXian) };  //设置一个对象数组,调用拷贝构造函数来拷贝来自相同城市的雇主信息
	string num = "E";
	for (int i = 0; i < 2; i++)
	{
		e_e[i].setName(num);  //给雇主setname,编号
		num += '1';
	}

	//display阶段
	cout << endl << "——WELCOME TO OUR EMPLOYEE DATA BASES——" << endl << " (loarding......)" << endl;
	e_null.display();
	e_inChongqing.display();
	e_inXian.display();
	e_inZhengzhou.display();
	e_new.display();
	for (int i = 0; i < 2; i++)
	{
		e_e[i].display();
	}

	Employee::showcount();
	return 0;
}

 main函数中创建对象数组时,error出现在68行

严重性	    代码	说明	                            项目	文件	                           
错误(活动)	E0334	类 "Employee" 没有适当的复制构造函数	6_24	D:c&c++相关资料c++c++实验报告6_24源6_24.cpp	 

 联机搜索后发现需要在拷贝构造函数的形参中加const即可,具体原因详见【c++】=重载,报错:没有合适的复制构造函数https://blog.csdn.net/C2681595858/article/details/83956459

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990084.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号