首页 > 其他分享 >实验一

实验一

时间:2022-09-29 19:56:16浏览次数:43  
标签:const int double width length 实验 Rectangle

#include<iostream>
using std::cout;
using std::endl;
using namespace std;
class Point {
public:
   Point(int x0 = 0, int y0 = 0);
   Point(const Point&p );
   ~Point() = default;
   int get_x() const { return x; }
   int get_y() const { return y; } 
    void show() const;
	private: int x,y;
		
};
Point::Point(int x0,int y0):x{x0},y{y0}{
     cout<<"constructor called."<<endl;
}
Point::Point(const Point& p): x{p.x}, y{p.y} {
cout << "copy constructor called." << endl;
}
void Point::show() const {
cout << "(" << x << ", "
        << y << ")" << endl;
}

int main() {
  Point p1(4, 5); 
  p1.show();
 
  Point p2 = p1; 
   p2.show();
 
  Point p3 = p2; 
   p3.show();
cout << p3.get_x() << endl;
}

  

#include <iostream>
#include <iomanip>
using std::cout;
using std::endl;

class Clock {
public:
  Clock(int h = 0, int m = 0, int s = 0);
       Clock(const Clock& t);
   ~Clock() = default;
    void set_time(int h, int m = 0, int s = 0);

   void show_time() const;
  private:
int hour, minute, second;
};

Clock::Clock(int h, int m, int s): hour{h}, minute{m}, second{s} {
   cout << "constructor called" << endl;
}
Clock::Clock(const Clock& t): hour{t.hour}, minute{t.minute},
second{t.second} {
   cout << "copy constructor called" << endl;
}
void Clock::set_time(int h, int m, int s) {
   hour = h;
   minute = m;
   second = s;
}
void Clock::show_time() const {
   using std::setw;
   using std::setfill;
   cout << setfill('0') << setw(2) << hour << ":"<< setw(2) << minute << ":"<< setw(2) << second << endl;
}

Clock reset() {
   return Clock(0, 0, 0);
}
int main()
{
   Clock c1(13, 1, 6); 
   c1.show_time();
   c1 = reset();
   c1.show_time();
   Clock c2(c1);
   c2.set_time(6);
   c2.show_time();
}

  

#include <iostream>

class X{
public:
  X();  
 ~X();  
 X(int m); 
  X(const X& obj);
  X(X&& obj) noexcept; 
  void show() const;
private:
  int data;
};
X::X(): data{42} {
  std::cout << "default constructor called.\n";
}
X::~X() {
  std::cout << "destructor called.\n";
}
X::X(int m): data{m} {
  std::cout << "constructor called.\n";
}
X::X(const X& obj): data{obj.data} {
  std::cout << "copy constructor called.\n";
}
X::X(X&& obj) noexcept: data{obj.data} {
  std::cout << "move constructor called.\n";
}
void X::show() const {
    std::cout << data << std::endl;
}
int main() {
  X x1; 
  x1.show();
  X x2{2049};
  x2.show(); 
  X x3{x1}; 
  x3.show();
  X x4{ std::move(x2) };
  x4.show();
}

  

X x1; 

//默认构造函数被调用

X x2{2049};

//定义的构造函数被调用

X x3{x1};

//复制构造函数被调用

X x4{std::move(x2)};

//移动构造函数被调用

 析构函数在对象作用域的末尾被调用。

应当在return 0 后x4,x3 ,  x2 , x1依次被销毁,析构函数依次被调用。

#include <iostream>
#include <iomanip>

class Rectangle{
     public:
     Rectangle();
     Rectangle(double length,double width);
     Rectangle(const Rectangle& x);
     ~Rectangle();
     double len() const;
     double wide() const;
     double area() const;
     double circumference() const;
     void resize(int times);
     void resize(int l_times, int w_times);
     private:
    double length;
    double width;
};
Rectangle::Rectangle():length{2.00},width{1.00}{ };

Rectangle::~Rectangle(){ };

Rectangle::Rectangle(double length,double width):length{length},width{width}{ };

Rectangle::Rectangle(const Rectangle& x):length{x.length},width{x.width}{ };

double Rectangle::len()const{ return length; };

double Rectangle::wide()const{ return width;};

double Rectangle::area() const{ return length*width; };

double Rectangle::circumference() const{ return 2*length+2*width; };

void Rectangle::resize(int times){ length = length*times; width = width*times;};

void Rectangle::resize(int l_times, int w_times){ length = length*l_times; width = width*w_times;};

void output(const Rectangle &rect){
  using namespace std;
  cout<<" 矩形信息\n";
  cout<<fixed<<setprecision(2);
  cout<<setw(3)<<setfill(' ')<<"长:"<<rect.len()<<endl;
  cout<<setw(3)<<setfill(' ')<<"宽:"<<rect.wide()<<endl;
  cout<<setw(5)<<setfill(' ')<<"面积:" <<rect.area()<<endl;
  cout<<setw(5)<<setfill(' ')<<"周长:"<<rect.circumference()<<endl;
}
int main(){
  Rectangle rect1;
  output(rect1);
  Rectangle rect2(10.0,5.0);
  output(rect2);
  Rectangle rect3(rect1);
  rect3.resize(2);
  output(rect3);
  rect3.resize(5,2);
  output(rect3);

}

  

 

标签:const,int,double,width,length,实验,Rectangle
From: https://www.cnblogs.com/nitendoblog/p/16738812.html

相关文章

  • 实验2:Open vSwitch虚拟交换机实践
    a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;b)/home/用户名/学号/lab2/目录下开启MininetCLI并执行pingall命令的......
  • 实验一
    实验任务1task1_1:#include<iostream>#include<string>#include<vector>intmain(){ usingnamespacestd; strings1; strings2{"cplusplus"}; str......
  • 实验2:Open vSwitch虚拟交换机实践
    一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的O......
  • Python实验报告(第五周)
    实验5:Python字符串及正则表达式一、实验目的和要求学会使用字符串的常用操作方法和正确应用正则表达式。二、实验环境软件版本:Python3.1064_bit三、实验过程1、实......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Python代码......
  • 实验一
    #include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);~Point()=defa......
  • 实验2
    #include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);~Point()=de......
  • 实验二
    实验报告基础要求提交a) /home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;  b) /home/用户名/学号/lab2/目录下开启M......
  • 实验2:Open vSwitch虚拟交换机实践
    (一)基本要求a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;b)/home/用户名/学号/lab2/目录下开启MininetCLI并执行pi......
  • 第四章实验
    实例一importdatetimemot=["今天星期一:\n坚持下去,因为我别无选择","今天星期二;\n含泪播种的人一定能笑着收获;","今天星期三;\n做对的事情比事情做对......