Newsgroup: it.comp.lang.c++
Titolo: Problemi compilazione con VC++6

Perchè il seguente codice non viene compilato da VC++6.0(mentre funziona
perfettamente con DJGPP)?
Il problema si verifica in corrispondenza delle due friend member functions.
Grazie
Marco
#include <iostream>
#include <cmath>
using namespace std;
static const double pi = 3.1415926535897932384626433832795;
class PView
{
private:
 double _x;
 double _y;
 double _z;
 static const int _screen_pos;
public:
 PView(double x = 20, double y = 0, double z = 0) : _x(x), _y(y), _z(z) {}
 double x() const { return _x; }
 double y() const { return _y; }
 double z() const { return _z; }
 double screen_pos() const { return _screen_pos; }
};
const int PView::_screen_pos = 10;
class Pto
{
private:
 double _x;
 double _y;
 double _z;
 bool isValid;
 double _raggio;
 double _teta;
 double _rho;
 void setpolar();
 void setcart();
public:
 Pto(double x, double y, double z) : _x(x), _y(y), _z(z), isValid(false) {}
 Pto(const Pto& P) : _x(P._x), _y(P._y), _z(P._z) {}
 Pto Proietta(const PView&) const;
 double x() const { return _x; }
 double y() const { return _y; }
 double z() const { return _z; }
 void inalto(int incr = 1) { _z += incr; isValid = false; }
 void inbasso(int incr = 1) { _z -= incr; isValid = false; }
 void adx(int incr = 1) { _y += incr; isValid = false; }
 void asx(int incr = 1) { _y -= incr; isValid = false; }
 void ruotadx(double = 0.1);
 void ruotasx(double = 0.1);
 friend Pto operator+(const Pto&, const Pto&);
 friend ostream& operator<< (ostream&, const Pto&);
};
ostream& operator<< (ostream& os, const Pto& P) {
 os << P._x << " " << P._y << " " << P._z;
 return os;
}
Pto Pto::Proietta(const PView& PV ) const {
 double t = ( PV.screen_pos() - PV.x())  / (PV.x() - _x);
 return Pto( PV.screen_pos(), PV.y() + (PV.y() - _y) * t , PV.z() +
(PV.z() - _z) * t);
}
Pto operator+(const Pto& A, const Pto& B) {
 return Pto(A.x() + B.x(), A.y() + B.y(), A.z() + B.z());
}
void Pto::setpolar() {
 _raggio = sqrt( _x * _x + _y * _y + _z * _z);
 _teta = atan(_y / _x);
 _rho = asin( _z / _raggio);
}
void Pto::setcart() {
 _z = _raggio * sin(_rho);
 double temp = _raggio * cos(_rho);
 _x = temp * cos(_teta);
 _y = temp * sin(_teta);
}
void Pto::ruotadx(double incr) {
 if(!isValid) {
  setpolar();
  isValid = true;
 }
 _teta -= incr;
 setcart();
}
void Pto::ruotasx(double incr) {
 if(!isValid) {
  setpolar();
  isValid = true;
 }
 _teta += incr;
 setcart();
}
int main() {
 PView Oss;
 Pto cubo[8] =
{Pto(5,5,5),Pto(5,5,-5),Pto(5,-5,-5),Pto(5,-5,5),Pto(-5,5,5),Pto(-5,5,-5),Pt
o(-5,-5,-5),Pto(-5,-5,5)};
 int i= 0;
 for(; i < 8; i++) {
  Pto proiezione = cubo[i].Proietta(Oss);
  cout << proiezione << endl;
 }
 for(i = 0; i < 8; i++) {
  cubo[i].ruotadx(pi / 2);
  cout << cubo[i] << endl;
 }
 return 0;
}

 Il problema si verifica in corrispondenza delle due friend member
functions.
A me, con VC++ 5.0 compila tranquillamente.
A parte un accapo di troppo inserito da Outlook a metà di un identificatore
--
Alessandro Monti

Qualcuno sa dirmi dove trovare le FAQ, o meglio ancora me le potrebbe
spedire come txt o similare al mio indirizzo?
Spiego: il mio accesso a internet dall'universita' e' protetto dal
firewall che si fa un pacchettino di cazzi suoi e non e in grado di capire
se e' o meno qualcosa di interessante e percio' chiude un sacco di siti!
Percio' non vorrei trovarmi a cristonare perche' ho un indirizzo delle FAQ
e non potendoci andare di persona incomincerei a sclerare con i remailer!!
	Grazie					Dede
de_bona...@educ.di.unito.it
   (facolta di informatica)

 wrote in message
kXkK3.30595$nP6.3...@typhoon.libero.it...


 Il problema si verifica in corrispondenza delle due friend member
functions.


 3d2.obj - 1 error(s), 0 warning(s)
Ha ha ha!
Mi sa che ho fatto bene a non aggiornarmi.Comunque esistono tremila patch
per visual studio 6.0, è probabile che una di esse risolva il problema.
Devo fornire il sito per scaricare le patch?
--
Alessandro Monti

>Devo fornire il sito per scaricare le patch?
Sě, grazie

 Sě, grazie
www.microsoft.com
Ovviamente non garantisco che ci siano le patch che fanno al caso vostro.
--
Alessandro Monti

 
--------------------------------------------------------------------------
|Real Name: De Bona Davide			|  Enjoy Yourself        |
|E-mail:    
de_bona...@educ.di.unito.it
	|           &            |
|Know-How:  English,French,Italian		|        Have a Nice Day |
|Nick Name: DEDE				|                        |
--------------------------------------------------------------------------

cortesia di postare una risposta mi farebbe molto contento. 	Grazie
Dovresti trovare qualcosa su 
http://space.tin.it/computer/rgerola
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------