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

📄 people.cpp

📁 这是编程之道C-C++中的源代码,很简练,可以用于相关教学和重新熟悉C-C++时使用
💻 CPP
字号:
//类CPeople的实现
#include "people.h"
#include <string >
using namespace std;

CPeople::CPeople()
{
	m_nAge = 20;
	m_fSalary = 3000.00f;
	m_pstrName = new char[20];
	strcpy( m_pstrName, "无名氏");
}

CPeople::CPeople(int age, float salary, char* name)
{ 
	m_nAge = age;
	m_fSalary = salary;
	m_pstrName = new char[20];
	strcpy( m_pstrName, name);
}

CPeople::~CPeople()
{
	if ( m_pstrName != NULL )
		delete []m_pstrName;
}

int CPeople::GetAge() const
{
	return m_nAge;
}

void CPeople::SetAge( int age )
{
	m_nAge = age;
}

float CPeople::GetSalary() const
{
	if ( m_nAge < 20 )
		return 0;
	else if ( GetAge() > 60 )
		return  m_fSalary / 2;
	else
		return  m_fSalary;
}

void CPeople::SetSalary( float num )
{
	m_fSalary = num;
}

//赋值运算符重载的实现
CPeople& CPeople::operator=(const CPeople &AnotherPeople)
{
	if(this == &AnotherPeople)		// 检查自赋值
		return *this;
	if(m_pstrName)
		delete [] m_pstrName;		// 释放原有的内存资源
	m_nAge = AnotherPeople.m_nAge;
	m_fSalary = AnotherPeople.m_fSalary;

	//分配新的内存资源,并复制内容
	m_pstrName = new char[ strlen(AnotherPeople.m_pstrName) + 1];
	strcpy( m_pstrName, AnotherPeople.m_pstrName );
	return *this;
}

//输出运算符重载函数的实现
ostream& operator<<(ostream &stream, const CPeople &p)
{
	stream<<"姓名:"<<p.m_pstrName<<","
			<<"年龄:"<<p.GetAge()<<","
			<<"薪水:"<<p.GetSalary();
	return stream;
}

⌨️ 快捷键说明

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