1 //例6-16
2 #include <iostream>
3 using namespace std;
4 class Point
5 {
6 public:
7 Point() :x(0), y(0)
8 {
9 cout << "Default Constructor called." << endl;
10 }
11 Point(int x, int y) :x(x), y(y)
12 {
13 cout << "Constructor called." << endl;
14 }
15 ~Point()
16 {
17 cout << "Destructor called." << endl;
18 }
19 int getX() const { return x; }
20 int getY() const { return y; }
21 void move(int newX, int newY)
22 {
23 x = newX;
24 y = newY;
25 }
26 private:
27 int x, y;
28 };
29 void test01()
30 {
31 cout << "Step one:" << endl;
32 Point* ptr1 = new Point;
33 delete ptr1;
34 cout << "Step two:" << endl;
35 ptr1 = new Point(1, 2);
36 delete ptr1;
37 }
38 int main()
39 {
40 test01();
41 return 0;
42 }
1 //例6-17
2 #include <iostream>
3 using namespace std;
4 class Point
5 {
6 public:
7 Point() :x(0), y(0)
8 {
9 cout << "Default Constructor called." << endl;
10 }
11 Point(int x, int y) :x(x), y(y)
12 {
13 cout << "Constructor called." << endl;
14 }
15 ~Point()
16 {
17 cout << "Destructor called." << endl;
18 }
19 int getX() const { return x; }
20 int getY() const { return y; }
21 void move(int newX, int newY)
22 {
23 x = newX;
24 y = newY;
25 }
26 private:
27 int x, y;
28 };
29 void test01()
30 {
31 Point* ptr = new Point[2];
32 ptr[0].move(5, 10);
33 ptr[1].move(15, 20);
34 cout << "Deleting..." << endl;
35 delete[] ptr;
36 }
37 int main()
38 {
39 test01();
40 return 0;
41 }