[C++] program wyznaczający największą liczbę-błąd kompilacji

diego_maradona
Użytkownik
Użytkownik
Posty: 184
Rejestracja: 16 cze 2010, o 00:59
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 80 razy

[C++] program wyznaczający największą liczbę-błąd kompilacji

Post autor: diego_maradona »

Kod: Zaznacz cały

#include "stdafx.h"
#include <iostream>

using namespace std;

double larger( double  , double  );

int limit,i;
double max, num;


int main()
{
    cout<<"Program finds the largest number"<<endl
		<<"How many numbers would you like to enter?"<<endl;
		cin>>limit;
	    cout<<"Enter those numbers"<<endl;
		cin>>max;
		

		for(i=1; limit >i ;i++)
		{
			cin>>num;
			max=larger(num,max);
		}

		cout<<max;
	    

	cout<<endl;
	system("PAUSE");
}

 double larger( double x, double y)
 {
	 if (x>=y)
	return x;
	return y;
 }
Wychodzi błąd kompilacji, który nie za bardzo rozumiem
1>largest_number.cpp(20): error C2872: 'max' : ambiguous symbol
1> could be 'largest_number.cpp(11) : double max'
1> or 'max'
PMichalak
Użytkownik
Użytkownik
Posty: 125
Rejestracja: 29 paź 2009, o 20:03
Płeć: Mężczyzna
Lokalizacja: Kalisz
Podziękował: 1 raz
Pomógł: 16 razy

[C++] program wyznaczający największą liczbę-błąd kompilacji

Post autor: PMichalak »

w C++ jest zdefiniowana funkcja max(T a, T b), która zwraca maksimum i kompilator nie wie czy wywołujesz tę funkcję, czy odwołujesz się do swojej zmeinnej, którą nazwałeś tak samo.
diego_maradona
Użytkownik
Użytkownik
Posty: 184
Rejestracja: 16 cze 2010, o 00:59
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 80 razy

[C++] program wyznaczający największą liczbę-błąd kompilacji

Post autor: diego_maradona »

o_O w życiu bym na to nie wpadł, dzięki Zmieniłem nazwę z max na maximum i teraz wszystko gra i buczy. Rozumiem, że ta nieszczęsna funkcja max jest zadeklarowana w nagłówku #include "stdafx.h"?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] program wyznaczający największą liczbę-błąd kompilacji

Post autor: Afish »

Nie. stdafx jest nagłówkiem przyspieszającym kompilację. max siedzi w algorithm, ale najprawdopodobniej stdafx dołącza ten nagłówek, co powoduje błąd.
ODPOWIEDZ