[comp.lang.c++] Help about operator = .

gsanchez@greco.dit.upm.es (Gabriel Sanchez Gutierrez) (11/27/89)

// I am a new C++ programmer and I have a little (??) problem with
// the operator = .

//  This is the code :

#include <stdio.h>

class T
{
   int t ;
   T* next ;
 public :
   T(int) ;
   ~T()   ;    // His contenst

   void print1(void);
   T& operator = (T&) ;
};


T::T ( int val )
{
  t = val ;
  if (--val)
       next = new T (val);
  else
       next = 0;
}



T& T::operator= (T& tt)
{
   return (*this);     // It's enough for this test .
}


void T::print1(void)
{
  T* other = this ;

  printf("\n\n");
  do
    printf("%d ",other->t);
  while (other=other->next);
}


/****
 In Zortech C++ 1.06 - the last version I have - , this fragment
 compiles good . Only complains with a warning in
          >> print1 : other = other->sigo
          >> Warning : possible unintended assignment
 but I think it is not very important .

   My principal problem is with GNU g++ .
   In three lines , it gives errors :

     >> Constructor : next = new T (val) 
                      next = 0 
     >> print1      : other = other->sigo

   He tells me to miss parameters for the constructor . The errors are


 In method T::T (int):
   25: bad argument list for method `operator ='
   27: bad argument list for method `operator ='
 In method T::print1 ():
   45: bad argument list for method `operator ='

   I want to do an assignment between pointer to T , not between
  objects of type T .

   Do I forget something important ?
   Is my error an basic error ?

 Thanks .

*/