首页 > 其他分享 >实验1 类和对象(1)

实验1 类和对象(1)

时间:2022-09-28 18:36:31浏览次数:51  
标签:const width 对象 times int length 实验 Rectangle

#include<iostream>
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 namespace std;
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(12, 0, 5); 
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();
}

 

 

 

#include <iostream>
#include <iomanip>
using namespace std;
class Rectangle {
public:
    Rectangle(double length = 2.0, double width = 1.0);
    Rectangle(const Rectangle& rect);
    ~Rectangle()=default;
    double len() const { return length; }
    double wid() const { return width; }
    double area() const { return length*width; }
    double circumference() const { return(width + length) * 2; }
    void resize(int times);
    void resize(int l_times,int w_times);
private:
    double length, width;

};
Rectangle::Rectangle(double l, double w) :length(l), width(w) {}
Rectangle::Rectangle(const Rectangle& r) :length(r.length), width(r.width) {}
void Rectangle::resize(int times) { length *= times; width *= times; }
void Rectangle::resize(int l_times,int w_times) { length *=l_times; width *= w_times; }


void output(const Rectangle &rect)
{
    cout << "矩形信息: \n";
    cout<<"长:  "<<fixed<<setprecision(2)<<rect.len()<<endl;
    cout<<"宽:  "<<fixed<<setprecision(2)<<rect.wid()<<endl;
    cout<<"面积: "<<fixed<<setprecision(2)<<rect.area()<<endl;
    cout<<"周长:"<<fixed<<setprecision(2)<<rect.circumference()<<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,width,对象,times,int,length,实验,Rectangle
From: https://www.cnblogs.com/czba/p/16738935.html

相关文章

  • 实验任务五
    #include<iostream>#include<iomanip>usingnamespacestd;classRectangle{public:Rectangle(doublelength=2.0,doublewidth=1.0);Rectangle(cons......
  • python-面向对象属性的访问与self的理解
    属性访问类属性与对象属性在类中定义的名字,都是类的属性,细说的话,类有两种属性:数据属性和函数属性,可以通过__dict__访问属性的值,比如Person1.__dict__['student'],但Python......
  • 实验3:OpenFlow协议分析实践
    一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机制。二、实验环境下载虚拟机......
  • FormData将HTML表单转换为formData表单对象
    FormData对象的作用模拟HTML表单,相当于将HTML表单映射成表单对象,自动将表单对象中的数据拼接成请求参数的格式。异步上传二进制文件FormData对象的使用<!DOCTYPEht......
  • 实验2:Open vSwitch虚拟交换机实践与实验环境安装配置
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    #include<iostream>#include<string>#include<vector>intmain(){usingnamespacestd;strings1;//创建一个string对象strings2{"cplusplus"};//......
  • JSON 转复杂对象
    publicstaticObjectcopyProperties(JSONObjectoriObj,ObjectdesObj){//1.首先要拿到oriObj对象的所有存在值不为空的键-值,放入到集合当中Cla......
  • 实验3 OpenFlow协议分时实践
    基础实验抓包分析step1:搭建拓扑并配置相应IPstep2:Pingall并抓包step3:分析(1)hello包表示含义:控制器6633端口发送“我最高能支持OpenFlow1.0”信息给交换机43826端口......
  • 实验1.1熟悉string和vector
    #include<iostream>#include<string>#include<vector>intmain(){usingnamespacestd;strings1;strings2{"cplusplus"};strings3{s2};......
  • 实验3:OpenFlow协议分析实践
    拓扑#!/usr/bin/envpythonfrommininet.netimportMininetfrommininet.nodeimportController,RemoteController,OVSControllerfrommininet.nodeimportCPULi......