一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第12天,点击查看活动详情。
题目描述
定义一个Tree(树)类,有成员ages(树龄),不带参数的构造函数对ages初始化为1,成员函数grow(int years)对ages加上years,age()显示tree对象的ages的值。
Tree类声明如下:
class Tree {
public:
Tree();//构造函数
Tree(int age);
void grow(int years);//对数龄ages加上years
void age();//显示数龄ages的值
private:
int ages;//树龄
};
请实现Tree类的构造函数和成员函数。
输入
第一行:调用默认构造函数,输入生长年数
第二行:调用含参构造函数,输入树龄以及生长年数
输出
第一行:输出第一棵树生长后的树龄
第二行:输出第二棵树生长后的树龄
输入样例1
50
15 25
输出样例1
51
40
思路分析
考查类对象和构造函数。
构造函数会在定义类对象的时候就被调用。
构造函数名必须与类名相同,且没有返回值,不具有任何类型。
个人喜欢用参数列表初始化方法来解决。
定义默认值参数的构造函数:
Tree::Tree():ages(1){}
定义带参数的构造函数。
Tree::Tree(int age):ages(age){}
AC代码
#include"iostream"
#include"iomanip"
#include"cmath"
using namespace std;
class Tree
{
public:
Tree();
Tree(int age);
void grow(int years);
void age();
private:
int ages;
};
Tree::Tree():ages(1){}
Tree::Tree(int age):ages(age){}
void Tree::grow(int years)
{
ages+=years;
}
void Tree::age()
{
cout<<ages<<endl;
}
int main()
{
Tree tree1;
int years,ages;
cin>>years;
tree1.grow(years);
tree1.age();
cin>>ages>>years;
Tree tree2(ages);
tree2.grow(years);
tree2.age();
}