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 關注
- 1177 瀏覽
添加回答
舉報