4 回答
TA贡献1820条经验 获得超9个赞
Line L1(Point M,Point N);
这种形式,VS2008中,编译器会给出警告C4930:未调用原型函数。
编译器理解为这是在main内部声明了一个函数。
这也是为什么VS2005和VS6.0不执行的原因。因为是函数原型声明,当然不会执行。
正确调用方法是,参数不要再写类型了
Line L1(m, n); // 这样编译器就知道,你是声明了Line的实例变量
TA贡献1827条经验 获得超8个赞
Line L1(Point(),Point());
就可以了,函数的参数列表里是不能声明变量的,可以直接传递匿名对象(注意对象后的括号,就算没参数也要加括号)
如果要传递带参数的Point可以这样
Line L1(Point(1,2), Point(3,4));
TA贡献1877条经验 获得超6个赞
Append Code:
class Point{
int x, y;
public:
Point(int px=0,int py=0){
x=px; y=py;
cout <<"Point : (" <<x <<"," <<y <<") is erased.\n";
}
Point(const Point& pt){
x=pt.x; y=pt.y;
cout <<"Point : (" <<x <<"," <<y <<") is copied.\n";
}
~Point(){
cout <<"Point : (" <<x <<"," <<y <<") is erased.\n";
}
void show(){
cout <<"Point : (" <<x <<"," <<y <<")\n";
}
};
- 4 回答
- 0 关注
- 1150 浏览
添加回答
举报