我想使用一個函數來計算使用存儲在結構體中的變量的答案。每當我編譯代碼時,我都會遇到有關struct成員每次使用的錯誤。我在哪裏錯了?無法獲取函數來訪問結構體的成員
乾杯!
#include <iostream>
using namespace std;
struct rectangle
{
double length, width, area, perimeter; // measurements for rectangle
};
int calculations()
{
rect.area = rect.width * rect.length;
rect.perimeter = rect.width + rect.width + rect.length + rect.length;
}
int main()
{
rectangle rect; // rect is a rectnagle structure
cout << "Please enter the length of your rectangle: " << endl;
cin >> rect.length;
cout << "Please enter the width of your rectnagle: " << endl;
cin >> rect.width;
calculations();
cout << "The area of your rectangle is: " << rect.area << endl;
cout << "The perimieter of your rectnagle is: " << rect.perimeter << endl;
cout << rect.length << endl;
cout << rect.width << endl;
cout << rect.area << endl;
cout << rect.perimeter << endl;
}
,其中產生的錯誤是:
Untitled.cpp:15:5: error: use of undeclared identifier 'rect'
rect.area = rect.width * rect.length;
^
Untitled.cpp:15:17: error: use of undeclared identifier 'rect'
rect.area = rect.width * rect.length;
^
Untitled.cpp:15:30: error: use of undeclared identifier 'rect'
rect.area = rect.width * rect.length;
^
Untitled.cpp:17:5: error: use of undeclared identifier 'rect'
rect.perimeter = rect.width + rect.width + rect.length + rect.length;
^
Untitled.cpp:17:22: error: use of undeclared identifier 'rect'
rect.perimeter = rect.width + rect.width + rect.length + rect.length;
^
Untitled.cpp:17:35: error: use of undeclared identifier 'rect'
rect.perimeter = rect.width + rect.width + rect.length + rect.length;
^
Untitled.cpp:17:48: error: use of undeclared identifier 'rect'
rect.perimeter = rect.width + rect.width + rect.length + rect.length;
^
Untitled.cpp:17:62: error: use of undeclared identifier 'rect'
rect.perimeter = rect.width + rect.width + rect.length + rect.length;
^
8 errors generated.
這修復它,謝謝!可能是一個愚蠢的問題,你能告訴我在參數圓括號內的矩形之後的和號的重要性嗎? –
@MichaelDelahorne「&」在這裏將參數作爲[參考](http://en.wikipedia.org/wiki/Reference_(C%2B%2B))。沒有它,矩形對象將被複制,並且在計算函數內進行的修改不會影響main內的矩形對象。你也可以使用指針'*'來實現同樣的事情,或者根據需要返回一個新的矩形對象。 – zakinster