实验1 类和对象

#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(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(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>

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<<"长:  "<<left<<a.len()<<endl;
cout<<"宽:  "<<left<<a.wide()<<endl;
cout<<"面积:  "<<left<<a.area()<<endl;
cout<<"周长:  "<<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);
}

 

posted @ 2022-09-28 19:44  waitwaitw  阅读(18)  评论(0编辑  收藏  举报