题源地址
1:构造函数-1
描述 |
---|
定义一个长方形类Rectangle,类的成员包括: 1、width:长方形的宽,double类型,私有 2、height:长方形的高,double类型,私有 3、构造函数Rectangle(double, double):设置长方形的宽和高,第一个参数赋给宽,第二个参数赋给高 4、double getCir()函数:返回长方形的周长,公有 5、double getArea()函数:返回长方形的面积,公有 规定主函数是如下代码(不可以修改),根据输入输出,设计Rectangle类以满足要求。 int main() |
输入 |
只有一组案例。两个浮点数w和h,分别表示长方形的宽和高。 |
输出 |
长方形的周长,换行。 长方形的面积,换行。 |
样例输入 |
5 3.5 |
样例输出 |
17 17.5 |
关键点:
理解构造函数及其作用。
代码:
/*
定义一个长方形类Rectangle,类的成员包括:
1、width:长方形的宽,double类型,私有
2、height:长方形的高,double类型,私有
3、构造函数Rectangle(double, double):设置长方形的宽和高,第一个参数赋给宽,第二个参数赋给高
4、double getCir()函数:返回长方形的周长,公有
5、double getArea()函数:返回长方形的面积,公有
规定主函数是如下代码(不可以修改),根据输入输出,设计Rectangle类以满足要求。
int main()
{
double w, h;
cin >> w >> h;
Rectangle r(w, h);
cout << r.getCir() << endl;
cout << r.getArea() << endl;
return 0;
}
*/
#include <iostream>
using namespace std;
class Rectangle
{
private:
double width;
double height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
/*
// 也可以这样写
Rectangle(double w, double h)
{
width = w;
height = h;
}
*/
// 成员函数
double getCir()
{
return 2 * (width + height);
}
double getArea()
{
return width * height;
}
};
int main()
{
double w, h;
cin >> w >> h;
Rectangle r(w, h);
cout << r.getCir() << endl;
cout << r.getArea() << endl;
return 0;
}
2:构造函数-2
描述 |
---|
定义一个长方形类Rectangle,类的成员包括: 1、width:长方形的宽,double类型,私有 2、height:长方形的高,double类型,私有 3、构造函数Rectangle():什么事都不做 4、构造函数Rectangle(double, double):设置长方形的宽和高,第一个参数赋给宽,第二个参数赋给高 5、void setWidth(double)函数:设置长方形的宽,公有 6、void setHeight(double)函数:设置长方形的高,公有 7、double getCir()函数:返回长方形的周长,公有 8、double getArea()函数:返回长方形的面积,公有 规定主函数是如下代码(不可以修改),根据输入输出,设计Rectangle类以满足要求。 int main() |
输入 |
只有一组案例。四个浮点数w1、h1、w2、h2,分别表示第一个长方形的宽和高、第二个长方形的宽和高。 |
输出 |
第一个长方形的周长,换行。 第一个长方形的面积,换行。 第二个长方形的周长,换行。 第二个长方形的面积,换行。 |
样例输入 |
5 3.5 1 2 |
样例输出 |
17 17.5 6 2 |
关键点:
理解构造函数及其作用。
代码:
/*
定义一个长方形类Rectangle,类的成员包括:
1、width:长方形的宽,double类型,私有
2、height:长方形的高,double类型,私有
3、构造函数Rectangle():什么事都不做
4、构造函数Rectangle(double, double):设置长方形的宽和高,第一个参数赋给宽,第二个参数赋给高
5、void setWidth(double)函数:设置长方形的宽,公有
6、void setHeight(double)函数:设置长方形的高,公有
7、double getCir()函数:返回长方形的周长,公有
8、double getArea()函数:返回长方形的面积,公有
规定主函数是如下代码(不可以修改),根据输入输出,设计Rectangle类以满足要求。
int main()
{
double w1, h1, w2, h2;
cin >> w1 >> h1 >> w2 >> h2;
Rectangle r1(w1, h1);
Rectangle r2;
r2.setWidth(w2);
r2.setHeight(h2);
cout << r1.getCir() << endl;
cout << r1.getArea() << endl;
cout << r2.getCir() << endl;
cout << r2.getArea() << endl;
return 0;
}
*/
#include <iostream>
using namespace std;
class Rectangle
{
private:
// 成员变量
double width;
double height;
public:
// 构造函数
Rectangle() {}
Rectangle(double w, double h) : width(w), height(h) {}
// 成员函数
void setWidth(double w) { width = w; }
void setHeight(double h) { height = h; }
double getCir() { return 2 * (width + height); }
double getArea() { return width * height; }
};
int main()
{
double w1, h1, w2, h2;
cin >> w1 >> h1 >> w2 >> h2;
Rectangle r1(w1, h1);
Rectangle r2;
r2.setWidth(w2);
r2.setHeight(h2);
cout << r1.getCir() << endl;
cout << r1.getArea() << endl;
cout << r2.getCir() << endl;
cout << r2.getArea() << endl;
return 0;
}
3:构造函数-3
描述 |
---|
定义一个学生类Student,类的成员包括: 1、name:姓名,string类型,私有 2、score:成绩,double类型,私有 3、构造函数Student():什么都不做 4、构造函数Student(string, double):初始化学生的姓名和成绩 5、string getName():返回姓名,公有 6、double getScore()函数:返回成绩,公有 规定主函数是如下代码(不可以修改),根据输入输出,设计Student类以满足要求。 int main() |
输入 |
只有一组案例。字符串n和浮点数a,分别表示姓名和成绩。 |
输出 |
姓名,换行。 成绩,换行。 |
样例输入 |
Tom 80 |
样例输出 |
Tom 80 |
关键点:
红月当日,已经没有时间了,情况开始失控了。
代码:
/*
定义一个学生类Student,类的成员包括:
1、name:姓名,string类型,私有
2、score:成绩,double类型,私有
3、构造函数Student():什么都不做
4、构造函数Student(string, double):初始化学生的姓名和成绩
5、string getName():返回姓名,公有
6、double getScore()函数:返回成绩,公有
规定主函数是如下代码(不可以修改),根据输入输出,设计Student类以满足要求。
int main()
{
string n;
double a;
cin >> n >> a;
Student s(n, a);
cout << s.getName() << endl;
cout << s.getScore() << endl;
return 0;
}
*/
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
// 成员变量
string name;
double score;
public:
// 构造函数
Student() {}
Student(string n, double s) : name(n), score(s) {}
// 成员函数
string getName() { return name; }
double getScore() { return score; }
};
int main()
{
string n;
double a;
cin >> n >> a;
Student s(n, a);
cout << s.getName() << endl;
cout << s.getScore() << endl;
return 0;
}
4:构造函数和析构函数-1
描述 |
---|
定义一个学生类Student,类的成员包括: 1、name:姓名,string类型,私有 2、score:成绩,double类型,私有 3、构造函数Student(string, double):初始化学生的姓名和成绩,并且输出“[name]'s constructor”,其中[name]要用具体的值。 4、析构函数~Student():输出“[name]'s destructor”,其中[name]要用具体的值。 5、string getName():返回姓名,公有 6、double getScore()函数:返回成绩,公有 规定主函数是如下代码(不可以修改),根据输入输出,设计Student类以满足要求。 int main() |
输入 |
只有一组案例。字符串n1、浮点数a1、字符串n2、浮点数a2,分别表示第一个学生姓名和成绩、第二个学生姓名和成绩。 |
输出 |
[第一个学生的姓名]'s constructor [第二个学生的姓名]'s constructor [第一个学生的姓名][空格][第一个学生的成绩] [第二个学生的姓名][空格][第二个学生的成绩] [第二个学生的姓名]'s destructor [第一个学生的姓名]'s destructor 每行输出结果后面都有换行。 |
样例输入 |
Tom 80 Jerry 85 |
样例输出 |
Tom's constructor |
关键点:
析构函数:销毁类对象时启用
代码:
/*
定义一个学生类Student,类的成员包括:
1、name:姓名,string类型,私有
2、score:成绩,double类型,私有
3、构造函数Student(string, double):初始化学生的姓名和成绩,并且输出“[name]'s constructor”,其中[name]要用具体的值。
4、析构函数~Student():输出“[name]'s destructor”,其中[name]要用具体的值。
5、string getName():返回姓名,公有
6、double getScore()函数:返回成绩,公有
规定主函数是如下代码(不可以修改),根据输入输出,设计Student类以满足要求。
int main()
{
string n1, n2;
double a1, a2;
cin >> n1 >> a1 >> n2 >> a2;
Student s1(n1, a1), s2(n2, a2);
cout << s1.getName() << " " << s1.getScore() << endl;
cout << s2.getName() << " " << s2.getScore() << endl;
return 0;
}
*/
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
// 私有成员
string name;
double score;
public:
// 构造函数
Student(string n, double s)
{
name = n;
score = s;
cout << name << "'s constructor" << endl;
}
// 析构函数
~Student()
{
cout << name << "'s destructor" << endl;
}
// 公有成员函数
string getName()
{
return name;
}
double getScore()
{
return score;
}
};
int main()
{
string n1, n2;
double a1, a2;
cin >> n1 >> a1 >> n2 >> a2;
Student s1(n1, a1), s2(n2, a2);
cout << s1.getName() << " " << s1.getScore() << endl;
cout << s2.getName() << " " << s2.getScore() << endl;
return 0;
}
5:构造函数和析构函数-2
描述 |
---|
定义一个学生类Student,类的成员包括: 1、name:姓名,string类型,私有 2、score:成绩,double类型,私有 3、构造函数Student(string, double):初始化学生的姓名和成绩,并且输出“[name]'s constructor”,其中[name]要用具体的值。 4、析构函数~Student():输出“[name]'s destructor”,其中[name]要用具体的值。 5、string getName():返回姓名,公有 6、double getScore()函数:返回成绩,公有 把上一题主函数中的两个学生改成用学生类的数组定义,主函数略作修改 int main() { |
输入 |
只有一组案例。字符串n1、浮点数a1、字符串n2、浮点数a2,分别表示第一个学生姓名和成绩、第二个学生姓名和成绩。 |
输出 |
[第一个学生的姓名]'s constructor [第二个学生的姓名]'s constructor [第一个学生的姓名][空格][第一个学生的成绩] [第二个学生的姓名][空格][第二个学生的成绩] [第二个学生的姓名]'s destructor [第一个学生的姓名]'s destructor 每行输出结果后面都有换行。 |
样例输入 |
Tom 80 Jerry 85 |
样例输出 |
Tom's constructor |
提示说明 |
提示:假设...代表对象构造函数的参数列表,那么可以用以下不同的方法建立数组 Student s[2]={{...},{...}}; Student s[2]{{...},{...}}; Student s[2]={Student(...),Student(...)}; |
关键点:
情况开始失控了。
代码:
/*
定义一个学生类Student,类的成员包括:
1、name:姓名,string类型,私有
2、score:成绩,double类型,私有
3、构造函数Student(string, double):初始化学生的姓名和成绩,并且输出“[name]'s constructor”,其中[name]要用具体的值。
4、析构函数~Student():输出“[name]'s destructor”,其中[name]要用具体的值。
5、string getName():返回姓名,公有
6、double getScore()函数:返回成绩,公有
把上一题主函数中的两个学生改成用学生类的数组定义,主函数略作修改
int main()
{
string n1, n2;
double a1, a2;
cin >> n1 >> a1 >> n2 >> a2;
//这行改为定义一个学生类的数组s,长度为2
cout << s[0].getName() << " " << s[0].getScore() << endl;
cout << s[1].getName() << " " << s[1].getScore() << endl;
return 0;
}
*/
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
//定义私有成员变量
string name;
double score;
public:
//构造函数
Student(string n, double s)
{
name = n;
score = s;
cout << name << "'s constructor" << endl;
}
//析构函数
~Student()
{
cout << name << "'s destructor" << endl;
}
//公有成员函数
string getName()
{
return name;
}
double getScore()
{
return score;
}
};
int main()
{
string n1, n2;
double a1, a2;
cin >> n1 >> a1 >> n2 >> a2;
//这行改为定义一个学生类的数组s,长度为2
Student s[2] = {Student(n1, a1), Student(n2, a2)};
cout << s[0].getName() << " " << s[0].getScore() << endl;
cout << s[1].getName() << " " << s[1].getScore() << endl;
return 0;
}
6:构造函数和析构函数-3
描述 |
---|
定义一个学生类Student,类的成员包括: 1、name:姓名,string类型,私有 2、alias:别名,string类型,私有 3、构造函数Student(string, string):初始化姓名和别名,并且输出“[name]'s constructor”,其中[name]要用具体的值 4、析构函数~Student():输出“[name]'s destructor”,其中[name]要用具体的值 5、void print()函数:输出“[alias] is another name for [name]”,其中[name]和[alias]要用具体的值 规定主函数是如下代码(不可以修改),根据输入输出,设计Student类以满足要求 int main()
|
输入 |
只有一组案例。字符串a、字符串b,分别表示学生的姓名和别名。 |
输出 |
[学生的姓名]'s constructor [学生的别名] is another name for [学生的姓名] [学生的姓名]'s destructor 每行输出结果后面都有换行。 |
样例输入 |
Elizabeth Lisa |
样例输出 |
Elizabeth's constructor |
关键点:
情况开始失控了。
代码:
/*
定义一个学生类Student,类的成员包括:
1、name:姓名,string类型,私有
2、alias:别名,string类型,私有
3、构造函数Student(string, string):初始化姓名和别名,并且输出“[name]'s constructor”,其中[name]要用具体的值
4、析构函数~Student():输出“[name]'s destructor”,其中[name]要用具体的值
5、void print()函数:输出“[alias] is another name for [name]”,其中[name]和[alias]要用具体的值
规定主函数是如下代码(不可以修改),根据输入输出,设计Student类以满足要求
int main()
{
string name, alias;
cin >> name >> alias;
Student s(name, alias);
s.print();
return 0;
}
*/
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
//成员变量
string name;
string alias;
public:
//构造函数
Student(string name, string alias)
{
this->name = name;
this->alias = alias;
cout << name << "'s constructor" << endl;
}
//析构函数
~Student()
{
cout << name << "'s destructor" << endl;
}
//成员函数
void print()
{
cout << alias << " is another name for " << name << endl;
}
};
int main()
{
string name, alias;
cin >> name >> alias;
Student s(name, alias);
s.print();
return 0;
}