2011-02-05 1 views
1

Я пишу программу, которая должна помочь мне узнать о типах данных перечисления в C++. В настоящее время проблема заключается в том, что компилятор не любит использование моего перечисления при попытке использовать новый тип данных, как и другие типы данных. При компиляции моей функции trangleShape я получаю сообщение об ошибке «redeclared как другой вид символа». Взгляните на соответствующий код. Любое понимание оценено! Благодаря!Ошибка перечисления: переоформленный как другой вид символа

(Все функции являются их собственные .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 

Основная функция

//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; 
} 

triangleShape форма

# include "header.h" 

triangleType triangleShape(sideLenght1, sideLength2, sideLength3) 
{ 
    triangleType triangle; 
    return triangle; 
} 

ответ

6

Ваша проблема не имеет ничего общего с перечислениями. Проблема заключается в следующем строка в вашем определении triangleShape:

triangleType triangleShape(sideLenght1, sideLength2, sideLength3) 

Вы упускаете типы для ваших параметров и некоторых компиляторов, таких как GCC по умолчанию для int (хотя это не стандартное поведение, так что вы никогда не должны полагаться на Это). Поскольку в определении функции используется float, компилятор видит это как изменение его по-разному. Вы должны использовать опцию float с в реализации:

triangleType triangleShape(float sideLenght1, float sideLength2, float sideLength3) 
+0

Doh! его всегда что-то немое, как будто это не так? благодаря – darko