首页 > 其他分享 >实验一

实验一

时间:2022-09-28 19:45:33浏览次数:46  
标签:const int times width length 实验 Rectangle

实验任务2

源代码:

 1 #include <iostream>
 2 using std::cout;
 3 using std::endl;
 4 
 5 class Point 
 6 {
 7 public:
 8   Point(int x0 = 0, int y0 = 0);
 9   Point(const Point&p );
10   ~Point() = default;
11   int get_x() const { return x; }  
12   int get_y() const { return y; }  
13   void show() const;
14 private:
15   int x, y;
16 };
17 
18 Point::Point(int x0, int y0): x{x0}, y{y0} 
19 {
20   cout << "constructor called." << endl;
21 }
22 
23 Point::Point(const Point& p): x{p.x}, y{p.y} 
24 {
25   cout << "copy constructor called." << endl;
26 }
27 void Point::show() const
28  {
29   cout << "(" << x << ", "
30         << y << ")" << endl;
31 }
32 int main() 
33 {
34   Point p1(4, 5);  
35   p1.show();
36   Point p2 = p1;   
37   p2.show();
38   Point p3{p2};    
39   p3.show();
40   cout << p3.get_x() << endl;
41 }

 

运行结果:

修改数据后运行结果

 

实验任务3

源代码:

 1 #include <iostream>
 2 #include <iomanip>
 3 using std::cout;
 4 using std::endl;
 5 class Clock 
 6 {
 7 public:
 8   Clock(int h = 0, int m = 0, int s = 0);
 9   Clock(const Clock& t);
10   ~Clock() = default;
11   void set_time(int h, int m = 0, int s = 0);
12 void show_time() const;
13 private:
14   int hour, minute, second;
15 };
16 
17 Clock::Clock(int h, int m, int s): hour{h}, minute{m}, second{s}
18  {
19   cout << "constructor called" << endl;
20 }
21 Clock::Clock(const Clock& t): hour{t.hour}, minute{t.minute},
22 second{t.second} 
23 {
24   cout << "copy constructor called" << endl;
25 }
26 void Clock::set_time(int h, int m, int s) 
27 {
28   hour = h;
29   minute = m;
30   second = s;
31 }
32 void Clock::show_time() const 
33 {
34   using std::setw;
35   using std::setfill;
36   cout << setfill('0') << setw(2) << hour << ":"
37     << setw(2) << minute << ":"
38     << setw(2) << second << endl;
39 }
40 
41 Clock reset() 
42 {
43   return Clock(0, 0, 0);  
44 }
45 int main()
46 {
47   Clock c1(12, 0, 5);  
48   c1.show_time();
49   c1 = reset();    
50   c1.show_time();
51   Clock c2(c1);  
52   c2.set_time(6);
53   c2.show_time();
54 }

 

运行结果:

更改数据后运行结果:

 

实验任务4

源代码:

 1 #include <iostream>
 2 class X
 3 {
 4 public:
 5     X();
 6     ~X();
 7     X(int m);
 8     X(const X& obj);
 9     X(X&& obj) noexcept;
10     void show() const;
11 private:
12     int data;
13 };
14 X::X() : data{ 42 }
15 {
16     std::cout << "default constructor called.\n";
17 }
18 X::~X()
19 {
20     std::cout << "destructor called.\n";
21 }
22 X::X(int m) : data{ m }
23 {
24     std::cout << "constructor called.\n";
25 }
26 X::X(const X& obj) : data{ obj.data }
27 {
28     std::cout << "copy constructor called.\n";
29 }
30 X::X(X&& obj) noexcept : data{ obj.data }
31 {
32     std::cout << "move constructor called.\n";
33 }
34 void X::show() const 
35 {
36     std::cout << data << std::endl;
37 }
38 int main() {
39     X x1;
40     x1.show();
41     X x2{ 2049 };
42     x2.show();
43     X x3{ x1 };
44     x3.show();
45     X x4{ std::move(x2) };
46     x4.show();
47 }

 

运行结果:

分析:

line39调用默认构造函数;line41调用构造函数;line43调用复制构造函数;line45调用移动构造函数;

line47析构函数被调用了4次,销毁和清理了对象x1、x2、x3、x4占用的资源。

 实验任务5

源代码:

 1 #include <iostream> 
 2 #include <iomanip> 
 3  
 4 class Rectangle
 5 {
 6 public:
 7     Rectangle();
 8     Rectangle(double l , double w );
 9     Rectangle(const    Rectangle& rect);
10     ~Rectangle()=default;
11     double len()const{return length;}
12     double wide()const { return width; }
13     double area()const { return length * width; }
14     double circumference()const { return 2 * length + 2 * width; }
15     void resize(int times);
16     void resize(int l_times, int w_times);
17     private:
18         double length, width;
19 };
20 Rectangle::Rectangle()
21 {
22     length = 2.0;
23     width = 1.0;
24 }
25 Rectangle::Rectangle(double l, double w)
26 {
27     length = l;
28     width = w;
29 }
30 Rectangle::Rectangle(const Rectangle& rect)
31 {
32     length = rect.length;
33     width = rect.width;
34 }
35 void Rectangle::resize(int times)
36 {
37     length *= times;
38     width *= times;
39 }
40 void Rectangle::resize(int l_times, int w_times)
41 {
42     length *= l_times;
43     width *= w_times;
44 }
45 
46 
47 void output(const Rectangle& rect)
48 {
49     using namespace std;
50     cout << "矩形信息: \n";
51     cout << "长:     " << fixed << setprecision(2) << rect.len() << endl;
52     cout << "宽:     " << fixed << setprecision(2) << rect.wide() << endl;
53     cout << "面积:   " << fixed << setprecision(2) << rect.area() << endl;
54     cout << "周长:   " << fixed << setprecision(2) << rect.circumference() << endl;
55 }
56 int main() 
57 { 
58     Rectangle rect1;
59     output(rect1);
60     Rectangle rect2(10, 5); 
61     output(rect2); 
62     Rectangle rect3(rect1); 
63     rect3.resize(2); 
64     output(rect3);
65     rect3.resize(5, 2); 
66     output(rect3); 
67 }

 

运行结果:

 

标签:const,int,times,width,length,实验,Rectangle
From: https://www.cnblogs.com/dyb20030328/p/16738892.html

相关文章

  • 实验三OpenFlow协议分析实践
    1.请用Markdown排版;2.基础要求只需要提交导入到/home/用户名/学号/lab3/目录下的拓扑文件,wireshark抓包的结果截图和对应的文字说明;1)hello交换机52298端口(最高支持Ope......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的1.能够对OpenvSwitch进行基本操作;2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3.能够通过Mininet的Python代码运行OVS命令,控制网络拓......
  • 实验1 类与对象
    实验任务2#include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);......
  • 实验1:SDN拓扑实践
    (一)基本要求1.使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py2.使用Mininet的命令行生成如下拓扑:a)3台交换机,每个交换机连接1台主机,3台交换机连......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验1 类和对象
    #include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);~Point......
  • 实验一
    task2:#include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);......
  • 实验一 类和对象
    任务二//Point类//相较于教材,在构造函数的写法上,采用了业界更通用的初始化列表方式#include<iostream>usingstd::cout;usingstd::endl;//定义Point类classP......
  • 实验1 类和对象(1)
    #include<iostream>usingnamespacestd;classpoint{public:point(intx0=0,inty0=0);point(constpoint&p);~point()=default;intget_x()co......