首页 > 其他分享 >实验1

实验1

时间:2022-09-29 20:56:35浏览次数:42  
标签:const Point int double width length 实验

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

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 << "copy 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(3,9);
    p1.show();
    
    Point p2=p1;

 

    p2.show();
    
    Point p3(p2);
    p1.show();
    
    cout<< p3.get_x() <<endl;
}

 

#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) }; 执行时移动构造函数被调用;

每个对象在使用完后都会调用一次析构函数;
#include <iostream> 
#include <iomanip>
using namespace std;

class Rectangle{
public:
    Rectangle():length(2.0),width(1.0){    };
    Rectangle(double l,double w):length(l),width(w){ };
    Rectangle(const Rectangle &rec):length(rec.length),width(rec.width){ };
    ~Rectangle()=default;
    
    double len() const {return length;}
    double wide() const {return width;}
    double area() const {return length*width;}
    double circumference() const {return 2*(length+width);}
    
    void resize(double times){
        length*=times;
        width*=times;
    }
    
    void resize(double l_times,double w_times){
        length*=l_times;
        width*=w_times;
    }
        
private:
    double length;
    double width;
        
};

void output(const Rectangle &rect) { 
    cout << "矩形信息: \n"; 
    cout << fixed << setprecision(2);
    cout<<"长:"<<"\t"<<rect.len()<<endl; 
    cout<<"宽:"<<"\t"<<rect.wide()<<endl; 
    cout<<"面积:"<<"\t"<<rect.area()<<endl; 
    cout<<"周长:"<<"\t"<<rect.circumference()<<endl; 
    cout<<endl;
}

int main() {
    Rectangle rect1; 
    output(rect1);
    
    Rectangle rect2(10, 5);
    output(rect2);
    
    Rectangle rect3(rect1);
    rect3.resize(2);
    output(rect3);
    
    rect3.resize(5, 2);
    output(rect3);
}

 

标签:const,Point,int,double,width,length,实验
From: https://www.cnblogs.com/wuyihaonb/p/16743037.html

相关文章

  • 实验一
    #include<iostream>usingstd::cout;usingstd::endl;usingnamespacestd;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);......
  • 实验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......