定义带参数的构造函数,为三个成员赋值,定义转换构造函数,将整型变量转成学生类的学号,重载赋值运算符函数,实现两个对象之间的赋值工作,定义类类型转换函数,将学生类的学号转换为整型数据后输出,实现两个学生之间学号的相减运算
3条回答 默认 最新
CSDN专家-link 2021-05-24 17:32关注#include <stdlib.h> #include <string.h> class temp{ private: char *pStuNo; char *pPro; char *pName; public: char * GetStuNo() { return pStuNo; } char * GetPro() { return pPro; } char * GetName() { return pName; } int GetStuNoInt() { return atoi(pStuNo); } temp() { pStuNo = NULL; pPro = NULL; pName = NULL; } temp(char *stuno,char *pro,char *name) { pStuNo = new char[strlen(stuno)+1]; memset(pStuNo, 0, strlen(stuno) + 1); memcpy(pStuNo, stuno, strlen(stuno)); // pPro = new char[strlen(pro) + 1]; memset(pPro, 0, strlen(pro) + 1); memcpy(pPro, stuno, strlen(pro)); // pName = new char[strlen(name) + 1]; memset(pName, 0, strlen(name) + 1); memcpy(pName, stuno, strlen(name)); } void Clear() { if (pStuNo != NULL) { delete[]pStuNo; pStuNo = NULL; } if (pPro != NULL) { delete []pPro; pPro = NULL; } if (pName != NULL) { delete []pName; pName = NULL; } } ~temp() { Clear(); } temp operator = (temp &t) { Clear(); pStuNo = new char[strlen(t.GetStuNo())+1]; strcpy(pStuNo, t.GetStuNo()); // pPro = new char[strlen(t.GetPro()) + 1]; strcpy(pStuNo, t.GetPro()); // pName = new char[strlen(t.GetName()) + 1]; strcpy(pStuNo, t.GetName()); return *this; } int StuNoDeff(temp &t1, temp &t2) { return t1.GetStuNoInt() - t2.GetStuNoInt(); } }; int main() { temp t("20210211","COMPUTER","LIMING"); temp t1 = t; temp t2("20210293", "ENGLISH", "ZHANGSAN"); int n = t.StuNoDeff(t1, t2); return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 2无用