实验1 类和对象(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>
#include <iomanip>
class Rectangle{
    public:
        Rectangle():length(2.0),width(1.0){}
        Rectangle(double l,double w):length(l),width(w){}
        Rectangle(const Rectangle &R);
        ~Rectangle()=default;
         double len() const{
            return length;
        }
         double wide() const{
            return width;
        }
         double area() const{
            return width*length;
        }
         double circumference() const{
            return 2*(length+width);
        }
        void resize(int times){
            length*=times;
            width*=times;
        }
        void resize(int l_times,int w_times){
            length*=l_times;
            width*=w_times;
        }
        private:
            double length,width;
};
Rectangle::Rectangle(const Rectangle &R){
    length=R.length;
    width=R.width;
}
void output(const Rectangle &rect) {
using namespace std;
cout << "矩形信息: \n";
cout << fixed << setprecision(2);
cout <<"长:     "<<rect.len()<<endl;
cout <<"宽:     "<<rect.wide()<<endl;
cout <<"面积:   "<<rect.area()<<endl;
cout <<"周长:   "<<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);
}

 

posted @ 2022-10-04 23:20  费远航  阅读(30)  评论(0编辑  收藏  举报