我正在编写一个程序,可以帮助我学习C++中的枚举数据类型.当前的麻烦是编译器在尝试使用新数据类型时不喜欢我的枚举用法,就像其他数据类型一样.在编译我的trangleShape函数时,我收到错误"重新声明为不同类型的符号".看看相关代码.任何见解都表示赞赏!谢谢!
(所有函数都是自己的.cpp文件.)
头文件
#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED
#include <iostream>
#include <iomanip>
using namespace std;
enum triangleType {noTriangle, scalene, isoceles, equilateral};
//prototypes
void extern input(float&, float&, float&);
triangleType extern triangleShape(float, float, float);
/*void extern output (float, float, float);*/
void extern myLabel(const char *, const char *);
#endif // HEADER_H_INCLUDED
Run Code Online (Sandbox Code Playgroud)
主功能
//8.1 main
// this progam...
#include "header.h"
int main()
{
float sideLength1, sideLength2, sideLength3;
char response;
do //main loop
{
input (sideLength1, sideLength2, sideLength3);
triangleShape (sideLength1, sideLength2, sideLength3);
//output (sideLength1, sideLength2, sideLength3);
cout << "\nAny more triangles to analyze? (y,n) ";
cin >> response;
}
while (response == 'Y' || response == 'y');
myLabel ("8.1", "2/11/2011");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
三角形状
# include "header.h"
triangleType triangleShape(sideLenght1, sideLength2, sideLength3)
{
triangleType triangle;
return triangle;
}
Run Code Online (Sandbox Code Playgroud)
你的问题与枚举无关.问题行是triangleShape定义中的这一行:
triangleType triangleShape(sideLenght1, sideLength2, sideLength3)
Run Code Online (Sandbox Code Playgroud)
你缺少参数的类型和一些编译器,比如gcc默认的int(虽然这不是标准行为,所以你永远不要依赖它).由于函数定义使用floats,编译器将其视为以不同方式重新声明它.您应该float在实现中使用指定s:
triangleType triangleShape(float sideLenght1, float sideLength2, float sideLength3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8029 次 |
| 最近记录: |