6-1体育俱乐部
Club::Club(string n1,int y,string n2,int wr):name(n1),year(y),c(n2,wr){}
void Club::show()
{
cout<<name<<" "<<year<<endl;
c.show();
}
void Coach::show()
{
cout<<name<<" "<<winRate<<"%"<<endl;
}
6-2创建CPU
#include<iostream>
#include<cstdio>
using namespace std;
enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};
class CPU{
private:
CPU_Rank Rank;
int frequence;
float voltage;
public:
CPU(CPU_Rank rank=P1,int f=2,float v=100)
:Rank(rank),frequence(f),voltage(v)
{
cout<<"create a CPU!"<<endl;
}
CPU(const CPU& c)
{
cout<<"copy create a CPU!"<<endl;
Rank=c.Rank;
frequence=c.frequence;
voltage=c.voltage;
}
//析构函数
~CPU(){
cout<<"destruct a CPU!\n";
}
void showinfo()
{
cout<<"rank:"<<Rank<<endl;
cout<<"frequency:"<<frequence<<endl;
cout<<"voltage:"<<voltage<<endl;
}
};
6-3Tree类的构造函数和成员函数
Tree::Tree(){
ages=1;
}
void Tree::grow(int years)
{
ages+=years;
}
void Tree::age()
{
cout<<ages<<endl;
}
6-4又见日期类
#include <iostream>
using namespace std;
int DaysInMonth(int year,int month)
{
int k;
int maxday[3][14]= {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
if(year%4==0 || year%400==0)
{
k=maxday[1][month];
}
else k=maxday[0][month];
return k;
}
class Date {
private:
int year;
int month;
int day;
public:
Date(int y = 1949, int m = 10, int d = 1) : year(y), month(m), day(d)
{
if (y < 1900 || y > 2120)
throw "year is invalid";
if (m < 1 || m > 12)
throw "month is invalid";
if (d < 1 || d > DaysInMonth(year,month))
throw "day is invalid";
}
void addDay(int n)
{
day =day+n;
while (day > DaysInMonth(year,month))
{
day =day-DaysInMonth(year,month);
month++;
if (month> 12)
{
year++;
month = 1;
}
}
}
string toString(char a) {
return to_string(year) + a + to_string(month) + a + to_string(day);
}返回值的书写
int getMon() const {
return month;
}
int setMon(int m) {
if (m < 1 || m > 12)
return 0;
month = m;
return 1;
}
int getDay() const {
return day;
}
int setDay(int d) {
if (d < 1 || d > DaysInMonth(year,month)) return 0;
day = d;
return 1;
}
};