#include<iostream> using namespace std; class Point { private: int x,y; public: Point( int xx=0,int yy=0 ); void Set(int xx,int yy); void Show(); }; Point::Point( int xx,int yy ) { x=xx; y=yy; } void Point::Set( int xx,int yy ) { x=xx; y=yy; } void Point::Show() { printf("(%d,%d)\n",x,y); } int main() { Point p1,p2(20,100); cout<<"Show object p1:"; p1.Show(); cout<<"Show object p2:"; p2.Show(); int x,y; cin>>x>>y; cout<<"Reset and Show object p1:"; p1.Set(x,y); p1.Show(); cin>>x>>y; cout<<"Reset and Show object p2:"; p2.Set(x,y); p2.Show(); return 0; }
时间: 2023-12-02 15:03:13 浏览: 109
这段代码实现的功能和上面的代码是相同的,只是使用了不同的语法形式。以下是点类 Point 的实现代码:
```cpp
#include<iostream>
using namespace std;
class Point {
private:
int x, y;
public:
Point(int xx = 0, int yy = 0) {
x = xx;
y = yy;
}
void Set(int xx, int yy) {
x = xx;
y = yy;
}
void Show() {
printf("(%d,%d)\n", x, y);
}
};
int main() {
Point p1, p2(20, 100);
cout << "Show object p1:";
p1.Show();
cout << "Show object p2:";
p2.Show();
int x, y;
cin >> x >> y;
cout << "Reset and Show object p1:";
p1.Set(x, y);
p1.Show();
cin >> x >> y;
cout << "Reset and Show object p2:";
p2.Set(x, y);
p2.Show();
return 0;
}
```
在类定义中,构造函数和成员函数的实现都放在了类的内部,并且在函数名后面加上了类名和作用域解析符号 `::`。在构造函数中使用了默认参数,可以在创建对象时不传递参数,或者只传递一个参数。在 Show 函数中使用了 `printf` 函数输出,而不是 cout 对象。这些都只是语法上的差异,实现的功能是一样的。
阅读全文