String
                  
                  
                  {
                  
                  
                      protected:
                  
                  
                          enum { SZ = 80 };
                  
                  
                          char str[SZ];
                  
                  
                      public:
                  
                  
                          String()
                  
                  
                          { str[0] = '\0'; }
                  
                  
                          String( char s[] )
                  
                  
                          { strcpy( str, s ); }
                  
                  
                          void display() const
                  
                  
                          { cout << str; }
                  
                  
                          operator char* ()
                  
                  
                          { return str; }
                  
                  
                  };
                  
                  
                  //////////////////////////////////
                  
                  
                  class Pstring : public String
                  
                  
                  {
                  
                  
                      public: 
                  
                  
                          Pstring( char s[] );
                  
                  
                  };
                  
                  
                  //------------------
                  
                  
                  Pstring::Pstring( char s[] )
                  
                  
                  {
                  
                  
                      if(strlen(s) > SZ - 1)
                  
                  
                      {
                  
                  
                          int j = 0;
                  
                  
                          for(j; j < SZ - 1; j++)
                  
                  
                          {
                  
                  
                              str[j] = s[j];
                  
                  
                          }
                  
                  
                          str[j] = '\0';
                  
                  
                      }
                  
                  
                      else
                  
                  
                          String( s );
                  
                  
                  }
                  
                  
                  //------------
                  
                  
                  int main()
                  
                  
                  {
                  
                  
                      Pstring obj1("some string here...");
                  
                  
                      obj1.display();
                  
                  
                   
                  
                  
                      return 0;
                  
                  
                  }
                  
                  
                  
                  
                  
                  почему в конструкторе Pstring::Pstring( char s[] ) после else создается временный объект, который нельзя использовать? И вообще строку не выводит(((
                  
                  
                
Создаётся временный объект, потому что ты его создаёшь, вызвав конструктор
Обсуждают сегодня