程序员

实验四 拷贝构造函数和赋值运算符函数

作者:admin 2021-05-12 我要评论

文章目录 题目 分块实现 定义学生类 成员函数 私有数据成员 最后代码 题目 实现一个学生类Student。 私有数据成员 姓名name_(char*) [ 采用字符指针的类型可以通...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)


题目

实现一个学生类Student。
私有数据成员:

  • 姓名name_(char*) [ 采用字符指针的类型,可以通过动态分配空间,适应不同长度的姓名.]
  • 性别gender_(枚举类型)(可以先定义枚举类型性别,例如enum Gender{Male, Female},再定义性别变量gender_)
  • 学号number_(int)
  • 成绩score_(int)

成员函数:

  • 无参构造函数和带参数构造函数
  • 拷贝构造函数
  • 赋值运算符函数
  • 析构函数
  • 成员函数Display()显示学生的姓名、性别、学号和成绩

分块实现

定义学生类

成员函数



私有数据成员



最后代码

#include <iostream>
#include <cstring>
using namespace std;
using namespace St
class Student{
public:
	enum Gender{Male, Female};
	friend ostream& operator<<(ostream& os, Gender gender){
		if(gender == Male)
			os << "Male";
		else
			os << "Female";
		return os;
	}
	Student(){
		
	}
	
	Student(const char* name, Gender gender, int number, int score){
		name_ = new char[strlen(name) + 1];
		strcpy(name_, name);
		gender_ = gender;
		number_ = number;
		score_ = score;
	}

	Display(){
		cout << name_ << " " << gender_ << " " << number_ << " " << score_ << "\n";
	}

private:
	char* name_;
	Gender gender_;
	int number_;
	int score_;
};

int main(){
	Student s1;
	Student s2("Nicolas ZhaoSi", Student::Male, 20010, 100);
	Student s3("Jason GuoDa Statham", Student::Female, 20020, 60);
	Student s4(s2);
	s1 = s3;
	s1.Display();
	s2.Display();
	s3.Display();
	s4.Display();
	return 0;
}

;原文链接:https://blog.csdn.net/weixin_51671868/article/details/115483464

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 实验四 拷贝构造函数和赋值运算符函数

    实验四 拷贝构造函数和赋值运算符函数

  • 【Java学习】什么是SSL、TLS、HTTPS

    【Java学习】什么是SSL、TLS、HTTPS

  • Filecoin全网规模达到基线规模后,后势

    Filecoin全网规模达到基线规模后,后势

  • ubuntu16.04下安装cv_bridge遇到的问题

    ubuntu16.04下安装cv_bridge遇到的问题

腾讯云代理商
海外云服务器