类与对象

实验内容:1.定义一个学生类Student,学生类中有3 个私有数据成员:num(学号)、name(姓名)、age(年龄);3 个公有成员函数:Student(构造函数)、display、~Student(析构函数)。使用构造函数为Student 类的对象赋值(name 使用动态内存分配空间),display 负责显示学生的基本信息,在析构函数中释放动态分配的内存。

分析:在构造函数中为name 动态分配内存,然后赋值,在析构函数中释放。

实验心得://很多情况下判断一个字符串长度需要知道其在哪里结束,这就是结束符'\0',所以你需要加一,strlen("string")返回6,事实上这个字符串占7个字节,如果你
//name=new char[6];
//strcpy(name,"string");
//它会复制7个字节,而你只分配了6个字节给name,




#include <iostream>
#include <string>

using namespace std;
class Student{
private:
	int age,num;
	char *name;//
public:
	Student(char *name1,int age1,int num1);
    ~Student();
	void display();
};
Student::Student(char *name1,int age1,int num1)

{   name=new char[strlen(name1)+1];//
    strcpy(name,name1);//
	age=age1;
	num=num1;
}
void Student::display()
{   cout<<"name: "<<name<<endl;
    cout<<"age: "<<age<<endl;
	cout<<"num: "<<num<<endl;
}
Student::~Student()
{   delete []name;
}
int main()
{   Student s1("huang yu",21,76);
    s1.display();
	return 0;
}

运行结果:


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值