当前位置: 首页 > news >正文

C++面向对象结构改进

书接上回,基于上一篇的程序改进了结构,使用了构造函数和析构函数

student.h:

#define _CRT_SECURE_NO_WARNINGS#include <cstring>
#include <iostream>using namespace std;class Student
{
private:char* m_name;int m_age;int m_score;
public:Student();Student(const char* name, int age, int score);~Student();void setName(const char* name);void setAge(int age);void setScore(int score);void show();
};Student::Student()
{m_name = NULL;m_age = 0;m_score = 0;
}Student::Student(const char* name, int age, int score)
{m_name = new char[strlen(name) + 1];  // 分配内存strcpy(m_name, name);  // 复制字符串m_age = age;m_score = score;
}void Student::setName(const char* name)
{delete[] m_name;  // 释放原来的内存m_name = new char[strlen(name) + 1];  // 分配新的内存strcpy(m_name, name);  // 复制字符串
}void Student::setAge(int age)
{m_age = age;
}void Student::setScore(int score)
{m_score = score;
}Student::~Student()
{delete[] m_name;  // 释放内存
}void Student::show()
{if (m_name == NULL){cout << "目前还没有初始化";return;}cout << "姓名:" << m_name << endl;cout << "年龄:" << m_age << endl;cout << "分数:" << m_score << endl;
}

student.cpp:

#include "student.h"int main()
{Student stu("Zzj", 19, 98);stu.show();Student STU;STU.show();return 0;
}


http://www.mrgr.cn/news/25618.html

相关文章:

  • 【隐私计算】Paillier半同态加密算法
  • WInform记录的添加和显示
  • C#中的集合
  • 虚拟存储器“大观”,讲解核心逻辑知识和408大题方法
  • ​​操作系统 ---- 进程调度的时机、切换与过程
  • KV260 进阶开发(PYNQ驱动开发+Pixel Pack)
  • 【时时三省】c语言例题----华为机试题<统计字符>
  • 基于SSM的学生信息管理系统(选课管理系统)的设计与实现 (含源码+sql+视频导入教程)
  • 开发者的噩梦:如何在抄袭狂潮中杀出一条血路?
  • 大模型LLM之SpringAI:Web+AI(二)
  • 求职leetcode题目(10)
  • 机器学习(西瓜书)第 9 章 聚类
  • Netty 相关问题
  • 【Java-简单练习题】
  • C++入门基础
  • HarmonyOS开发实战( Beta5.0)日历切换案例实践详解
  • AI性能评估工具 | 安兔兔AI大模型评测 v1.0.0.1095
  • qml CheckBox 复选框
  • 智能会计定义
  • TCP/IP - Transport Layer