a_6_2.cpp

来自「C++应用教程原码,里面包含该书中有十三章内容的代码,详细具体」· C++ 代码 · 共 53 行

CPP
53
字号
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

class Student
{	public:
		Student(char * ,int);    //构造函数
		~Student();              //析构函数
		void copy(Student &); 
		void display()
		{ cout<<"姓名:"<<name<<"  学号:"<<id<<endl;
		}
	private:
		int id;
		char * name;
};

Student::Student(char * pName="no name",int reg_Id=0)
	{	id=reg_Id;
		name=new char[strlen(pName)+1];
		strcpy(name,pName);
		cout<<"创建一个新的学生资料  "<<pName<<endl;
	}
Student::~Student()
	{	cout<<"销毁 "<<name<<endl;
		delete name;
	}
void Student::copy(Student & student)  //资源复制函数
		{  if(this==&student)
			{  	cout<<"错误:不能复制自身!"<<endl;
		    	return;
			}
	    	else
			{   name=new char[strlen(student.name)+1];
		        strcpy(name,student.name);
		        id=student.id;
			}			
		}

void main()
{	Student Kevin("Kevin",12),Tom("Tom",23);   // 创建类对象并调用构造函数
    Kevin.display();
	Tom.display();
    Kevin.copy(Kevin);
    Tom.copy(Kevin);      
	Kevin.display();
	Tom.display();
	cin.get(); //等待结束,以便调测程序,可以删除
}


⌨️ 快捷键说明

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