C++基础知识整理八(类的指针 类的数组 )

本文详细介绍了C++中类的指针用法,包括如何声明、初始化及操作类指针。同时,文章讲解了如何创建和使用类的数组来存储多个对象,并通过实例展示了如何初始化、访问和释放类数组中的对象。

1,类的指针

mydata.cpp代码如下:

#include "pch.h"
#include <iostream>
#include "Cdate.h"
using namespace std;

int main(int argc, char* argv[])
{
	Cdate date;
	Cdate* c_date = &date;
	c_date->inputdate();
	c_date->printdate();
	return 0;
}

Cdate.cpp代码如下:

#include "pch.h"
#include "Cdate.h"
#include <iostream>
using namespace std;


Cdate::Cdate()
{
}


Cdate::~Cdate()
{
}

void Cdate::inputdate()
{
	cout << "请输入年月日:";
	cin >> year >> month >> day;
}

void Cdate::printdate()
{
	cout << "年:" << year << ",月:" << month << ",日:" << day << endl;

}

Cdate.h代码如下:

#pragma once
class Cdate
{
public:
	Cdate();
	~Cdate();
//定义成员
private:
	int year;
	int month;
	int day;
//定义成员函数
public:
	void inputdate();
	void printdate();
};

 

 

2, 

mydata.cpp代码如下:

#include "pch.h"
#include <iostream>
#include "Cdate.h"
using namespace std;

int main(int argc, char* argv[])
{
	Cdate* c_date = new Cdate();
	c_date->inputdate();//c_date通过地址来访问inputdate(),inputdate()
	c_date->printdate();
	return 0;
}

使用delete释放对象:

delete p_stu;

p_sut = NULL;

#include "pch.h"
#include <iostream>
#include "Cdate.h"
using namespace std;

int main(int argc, char* argv[])
{
	Cdate* c_date = new Cdate();
	c_date->inputdate();//c_date通过地址来访问inputdate(),inputdate()
	c_date->printdate();

	delete c_date;//变量所指向的内存空间给释放掉了
	c_date = NULL;
	return 0;
}

3,类的数组 

 保存三名学生的信息,并打印出来,代码如下:

Classstudent.cpp代码如下:

#include "pch.h"
#include <iostream>
#include "Cstudent.h"
using namespace std;

int main(int argc, char* argv[])
{
	Cstudent stu[3] = { Cstudent((char*)"li",(char*)"A001",90),Cstudent((char*)"zh",(char*)"a002",80),Cstudent((char*)"zao",(char*)"a003",70) };
	for (int i = 0; i < 3; i++)
	{
		stu[i].print();
	}
	return 0;
}

Cstudent.cpp代码如下:

#include "pch.h"
#include "Cstudent.h"
#include <iostream>
using namespace std;


Cstudent::Cstudent(char* myName, char* myNum, float myScore)
{
	strcpy_s(name, myName);
	strcpy_s(stuNum, myNum);
	matchScore = myScore;
}

Cstudent::Cstudent(char* myName, char* myNum)
{
	strcpy_s(name, myName);
	strcpy_s(stuNum, myNum);
	matchScore = 0;
}


Cstudent::~Cstudent(void)
{
}

void Cstudent::setName(char* myName)
{
	strcpy_s(name , myName);
}

void Cstudent::setNum(char* myNum)
{
	 strcpy_s(stuNum , myNum);
}

void Cstudent::setScore(float myScore)
{
	matchScore = myScore;
}

void Cstudent::print()
{
	cout << "姓名" << name << ",学号" << stuNum << ",数学成绩:" << matchScore << endl;
}

Cstudent.h代码如下:

#pragma once
class Cstudent
{
public:
	Cstudent(char* myName,char* myNum, float myScore);//构造函数
	Cstudent(char* myName, char* myNum);
	~Cstudent(void);//析构函数
private:
	char name[10];
	char stuNum[10];
	float matchScore;
public:
	char* getName();
	char* getNum();
	float getScore();
	void setName(char* myName);
	void setNum(char* myNum);
	void setScore(float myScore);
	void print();
};

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值