编译错误 在 C++ 上,Calcarea 未在此范围内声明
compiling error on c++, calcarea was not declared in this scope
我正在学习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;
}
编译器从
头到下读取代码,当它第一次遇到符号(在本例中为 calcarea
(时,它会检查该符号是否已声明。由于calcarea
只是在之后声明的,因此编译器当时不知道这个符号,因此,它是按摩:calcarea没有在这个范围内声明
如果将函数移动到首次调用之前,则会解决此错误。解决此问题的另一种方法是仅在 main 之前声明函数,并在之后定义它,这意味着您将函数保留在原处,但在 main 之前添加一行定义它: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");
}
编译器
正在帮助您。在您调用calcarea
时,它尚未声明。在main
之前移动它或声明它。
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- 错误:未在此范围内声明'reverse'
- 并行用于C++17中数组索引范围内的循环
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 不计算一个范围内的完美数
- 错误:"imread"未在此范围内声明
- 我在范围内未声明的错误类有问题
- 如何在cpp中使用地图显示给定日期范围内(在下面的问题中)的费率?
- 我有一个数组,我想输入一个范围,然后找到范围内所有偶数的总和?
- 未在此范围内声明错误 'xy'
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 命名空间范围内的外部 - GCC vs clang vs msvc
- 如何改进一堆在已知值范围内评估变量的 else-if 条件?
- 如何仅使用 While 循环在给定范围内找到可被 7 整除的计数整数
- Socklen_t未在此范围内声明
- 错误:'[' 之前预期的非限定 id 和错误:'users'未在此范围内声明
- 查找给定范围内最长连续 1 的频率
- "Main"已在当前范围内声明
- c++ 变量在宏的扩展中没有在这个范围内声明
- 编译错误 在 C++ 上,Calcarea 未在此范围内声明