2017-05-09 5 views
0

저는 C++을 배우고 있으며 함수를 사용하여 삼각형 영역을 인쇄하는이 연습을하고 있지만 컴파일하려고하면 오류가 발생합니다 [ 오류] 'Calcarea'가이 범위에서 선언되지 않았습니다. "C++에서 컴파일 오류가 발생했습니다.이 범위에서 calcarea가 선언되지 않았습니다.

#include<iostream> 
#include<cstdlib> 
using namespace std; 
double farea; 

main(){ 
    float base, height; 
    cout<<"Enter base of triangle: "; cin>>base; 
    cout<<"Enter height of triangle: "; cin>>height; 
    cout<<endl; 

    farea = calcarea(base,height); 
    cout<<"The area of the triangle is: "<<farea; 
    system("pause>nul"); 
} 

double calcarea(float ba, float he){ 
    double area; 

    area = (ba*he)/2; 
    return area; 
} 

답변

2

컴파일러가 처음부터 기호를 발견하면이 경우 calcarea이 표시되고 기호가 선언되었는지 확인합니다. calcarea 이후에만 따라서, 그것은 마사지의, 후, 컴파일러, 그 시간에,이 기호를 인식하지 못합니다 선언 : 당신이 할 기능을 이동할 수 있습니다 경우 calcarea이 범위

에 선언되지 않았습니다 처음 호출되기 전에이 오류가 해결됩니다. double calcarea(float ba, float he);

main(){ 
    float base, height; 
    cout<<"Enter base of triangle: "; cin>>base; 
    cout<<"Enter height of triangle: "; cin>>height; 
    cout<<endl; 

    farea = calcarea(base,height); // here your compiler must already know what is calcarea, either by moving the definition, or only adding declaration 
    cout<<"The area of the triangle is: "<<farea; 
    system("pause>nul"); 
} 
+1

덕분에이 문제를 해결하는 또 다른 방법은, 당신은 당신의 기능을 중단하지만 주 전에 정의 라인을 추가 할 것, 의미 만 주 전에 함수를 선언, 이후 그것을 정의하는 것입니다 그것은 일했다! – OsmaK

2

컴파일러가 바로 여기에 도움이됩니다. 그 시점에서 당신은 calcarea으로 전화하고 있습니다. 아직 선언되지 않았습니다. 그것을 이동하거나 main 전에 그것을 선언하십시오.