คุณเคยที่จะประกาศฟังก์ชันก่อนที่คุณใช้/เรียกมัน เธอทำประกาศที่ 2 ข้อโต้แย้งของเวอร์ชั่น rectangle
ฟังก์ชันแต่ดูเหมือนคุณจะต้องลืมที่จะประกาศที่ 1 เถียงกันกินเวอร์ชั่น.
ที่แสดงด้านล่างนี้ถ้าคุณเพิ่งปล่อยให้เธอได้หายใจอยู่อีสำหรับ 1 เถียงกันงั้นเวอร์ชั่นของคุณโปรแกรมทำงาน(compiles).
#include <iostream>
using namespace std;
//declare the function before main
int rectangle(int p, int l);
int rectangle(int p);//ADDED THIS DECLARATION
int main() {
cout << rectangle(3);
return 0;
}
//define the functions after main
int rectangle(int p) {
return p*p;
}
int rectangle(int p, int l) {
return p*l;
}
การส่งออกของโปรแกรมจะได้เห็น มาที่นี่.
ทางเลือกทางออก:
ถ้าคุณไม่ต้องการที่จะประกาศกันและฟังก์ชันต่างหากงั้นคุณควรจะกำหนดพวกมันก่อนที่หลักแทนที่จะประกาศว่าพวกเขาที่แสดงทางด้านล่างนี้
#include <iostream>
using namespace std;
//define the functions before main. This way there is no need to write a separate function declaration because all definition are declarations
int rectangle(int p) {
return p*p;
}
int rectangle(int p, int l) {
return p*l;
}
int main() {
cout << rectangle(3);
return 0;
}