首页 > 其他分享 >类与对象

类与对象

时间:2022-10-05 16:13:14浏览次数:41  
标签:const Clock 对象 void Point int Rectangle

实验任务2:

#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(10, 20);
    p1.show();
    Point p2=p1;
    p2.show();
    Point p3{p2};
    p3.show();
    cout<<p3.get_x()<<endl;
}
    
    
    

运行截图:

 

实验任务3:

#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(19,5,22); 
    c1.show_time();
    c1=reset();
    c1.show_time();
    Clock c2{c1};
    c2.set_time(18);
    c2.show_time();
}
    

运行截图:

实验任务4:

#include<iostream>
using namespace std;
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}
{
  cout << "default constructor called.\n"; 
}
X::~X() 
{
  cout << "destructor called.\n"; 
}
X::X(int m): data{m} 
{
  cout << "constructor called.\n"; 
}
X::X(const X& obj): data{obj.data}
{
  cout << "copy constructor called.\n"; 
}
X::X(X&& obj) noexcept: data{obj.data}
{
  cout << "move constructor called.\n"; 
}

void X::show() const 
{
    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();
}

运行截图:

析构函数在最后调用。从先往后调用。

实验任务5:

#include <iostream> 
#include <iomanip>
using namespace std;
class Rectangle
{
public:

    Rectangle(float a= 2.0,float b=1.0);
    void resize(int x);    
    void resize(int x,int y);
    float chang,kuan;
};
void Rectangle::resize(int x)
{
    chang=chang*x;
    kuan=kuan*x;
}
void Rectangle::resize(int x,int y)
{
    chang=chang*x;
    kuan=kuan*y;
}
Rectangle::Rectangle(float a,float b):chang{a},kuan{b}
{
}

void output(const Rectangle &rect)
{ 
    cout << "矩形信息: \n";
    cout << fixed << setprecision(2);
    cout<<"长:    "<<rect.chang<<endl;
    cout<<"宽:    "<<rect.kuan<<endl;
    cout<<"周长:  "<<2*(rect.chang+rect.kuan)<<endl;
    cout<<"面积:  "<<rect.chang*rect.kuan<<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,Clock,对象,void,Point,int,Rectangle
From: https://www.cnblogs.com/202183290359gyk/p/16755712.html

相关文章

  • [金三银四面试季]Java面向对象高频面试题
      金三银四正是跳槽涨薪的好时节,波哥给大家整理了很多面试高频的问题,助力大家找到更好的工作哦,点点关注,感谢支持。面向对象面试题1.谈谈你对面向对象思想的理解?面向过程......
  • 实验1 类和对象(1)
    实验任务2#include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPoint&p);......
  • 实验一 类与对象
    实验任务1#include<iostream>#include<string>#include<vector>intmain(){ usingnamespacestd; strings1; strings2{"cplusplus"}; strings3{s2}; stri......
  • CAD交互绘制块引用对象(网页版)
    主要用到函数说明:_DMxDrawX::DrawBlockReference绘制块引用对象。详细说明如下:参数说明DOUBLEdPosX插入点的X坐标DOUBLEdPosY插入点的Y坐标BSTRpszBlkName图块名DOUBLEd......
  • 28 对象的封装并返回值
    classResponse(object):def__init__(self):self.status=Trueself.detail=Noneself.data=[11,22,33]@propertydef......
  • 动手动脑——类与对象
    1.publicclassTest1{publicstaticvoidmain(String[]args){Fooobj1=newFoo();Fooobj2=newFoo();......
  • 实验1 类和对象
    实验任务2#include<iostream>#include<vector>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);Point(constPo......
  • 第七章.对象数组
     //1.首先你需要直到如何创建一一个对象?    //使用字面量方式创建一个学生对象    letstudent={"name":"tom","age":23,"score":98}; ......
  • 实验1 类和对象(1)
    2022.09.28OOP实验课实验1类和对象(1)实验任务1使用C++标准库提供的string类、vector类,观察基于这些类创建对象,通过对象访问接口的方法。#include<iostream>#includ......
  • Servlet——Request对象
    Request继承体系    1、Tomcat需要解析请求数据,封装为request对象,并且创建request对象传递到service方法中  2、使用request对象,查阅javaEEAPI文档的HttpServle......