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

实验1 类和对象(1)

时间:2022-09-28 20:58:47浏览次数:50  
标签:const width 对象 double int 实验 lenth Rectangle

#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 << "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(6,7);
    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, 4, 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 << "copy 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;
x1.show();默认构造函数被编译器自动调用
X x2{2049};
x2.show();构造函数被编译器自动调用
X x3{x1};
x3.show();复制构造函数被编译器调用
X x4{std::move(x2)};移动构造函数被编译器调用
x4.show();
#include <iostream>
#include <iomanip>

class Rectangle
{
    public:
        Rectangle();
        Rectangle(int l,int w);
        Rectangle(const Rectangle &x);
        double len ();
        double wide();
        double area();
        double circumference();
        void resize(double times);
        void resize(double l_times,  double l_);
        
        ~Rectangle()=default;
    private:
        double lenth,width;
}; 
Rectangle::Rectangle()
{
    lenth=2.0;
    width=1.0;
}
Rectangle::Rectangle(int l,int w)
{
    lenth=l;
    width=w;
}
Rectangle::Rectangle(const Rectangle &x)
{
    lenth=x.lenth;
    width=x.width;
}
double Rectangle::len()
{
    return lenth;
}
double Rectangle::wide()
{
    return width;
}
double Rectangle::area()
{
    return (lenth*width);
}
double Rectangle::circumference()
{
    return (lenth+width)*2;
    
}
void Rectangle::resize(double times){
    lenth*=times;
    width*=times;
}
void Rectangle::resize(double l_times,double w_times)
{
    lenth*=l_times;
    width*=w_times;
}
void output(const Rectangle &rect) 
{
using namespace std;
Rectangle a=rect;
cout << "矩形信息: \n";
cout << fixed << setprecision(2); 
cout <<std::left<<setw(8) << "长:  " << left << a.len() << endl;
cout <<std::left<<setw(8) << "宽:  " << left << a.wide() << endl;
cout <<std::left<<setw(8) << "面积:  " << left<< a.area() << endl;
cout <<std::left<<setw(8) << "周长:  " << left << a.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,width,对象,double,int,实验,lenth,Rectangle
From: https://www.cnblogs.com/DeviIMayCry/p/16739508.html

相关文章

  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验1 类和对象
    实验任务2#include<iostream>usingnamespacestd;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);~Point()=default......
  • 实验一:类和对象
    实验任务2#include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);~Point()=defa......
  • 实验1 类和对象
    #include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);Point()=default;intget_x......
  • 购物车系统的面向对象设计(Version1.0)
    0.人员分工共同工作:进行前期调查以及框架设计的考量,对自己所设计的类进行编码规范检查,完成博客的书写李蓉完成购物车系统中商品管理功能类设计和用户登陆功能的实现......
  • 实验一
    实验任务2源代码:1#include<iostream>2usingstd::cout;3usingstd::endl;45classPoint6{7public:8Point(intx0=0,inty0=0);9P......
  • 实验三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命令,控制网络拓......