⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7_64.cpp

📁 《c++程序设计技能百练》源代码,内有99个实例。
💻 CPP
字号:
#include<iostream.h>
#include<string.h>
#include<stdio.h>
struct std
{
	char* name;
	bool sex;
	unsigned int age;
	std* next;
};
class Student
{
public:
	Student(char* a[],bool b[],unsigned int c[],int n);
	~Student();
	void print();
private:
	std*num,*head,*p;
	int size;
};
Student::Student(char** a,bool* b,unsigned int* c,int n)
{
	size=n;
	head=new std;
	head->next=NULL;
	num=head;
	for(int i=0;i<size;i++)
	{
		p=new std;
		p->name=*(a+i);
		p->sex=*(b+i);
		p->age=*(c+i);
		p->next=NULL;
		num->next=p;
		num=p;
	}
}
Student::~Student()
{
	p=head->next;
	for(int i=0;i<size;i++)
	{
		num=p->next;
		delete p;
		p=num;
	}
	delete head;
	cout<<"析构函数在这里被自动调用!";
	cout<<endl;
}
void Student::print()
{
	p=head->next;
	cout<<"学生情况如下:(1代表男性,0代表女性)"<<endl;
	cout<<"姓名"<<"  "<<"性别"<<"  "<<"年龄"<<endl;
	for(int i=0;i<size;i++)
	{
		cout<<p->name<<"    "<<p->sex<<"    "<<p->age<<endl;
		p=p->next;
	}
}

void main()
{
	const int N=3;
	char* stdn[N];
	bool stds[N];
	unsigned int stda[N];
   	int stdsex;
	unsigned int stdage;
	for(int i=0;i<N;i++)
	{	
		char* stdname;
        stdname=new char[10];
		cout<<"Please input the student's name of NO."<<i+1<<":";
		cin>>stdname;
    	stdn[i]=stdname;
        cout<<"Please input the student's sex of NO."<<i+1<<"(1--male,0--female)"<<":";
		cin>>stdsex;
        if(stdsex) 
			stds[i]=true;
		else 
			stds[i]=false;
		cout<<"Please input the student's age of NO."<<i+1<<":";
		cin>>stdage;
		stda[i]=stdage;
	}	
    Student SA(stdn,stds,stda,N);
	SA.print();
	cout<<endl;
//	SA.Student::~Student();  错误:析构函数不能被显式调用
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -