Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Не могу вызвать метод из другого метода


Автор: Gunslinger 24.12.2008, 14:08
Задачи: получать адрес объекта другого класса;
              получать следующий адрес, прибавляя к полученному нужное.

Метод SetNextAddr сам по себе работает.            
Код

class ToTable {
       private:
            String StartCellAddr; //--------------адрес первой информативной ячейки таблицы
        
        public:
            
//-------------------------------------------------------------------------------------------------------------------------------------------
           String SetNextAddr(Cells& c,int g=2){
                  String buff_addr;
                  buff_addr=c.Return_sxaddr()+IntToStr(c.Return_yaddr()+g);
                  return buff_addr;
             }; 

//---------------------------------------------------------------------------------------------------------------------------------------------
            void ExtrudStartAddr(Cells& c) {
                 String buff_addr=c.ReturnAddress();
      //                    StartCellAddr=SetNextAddr(buff_addr);//------------ПРОБЛЕМНЫЙ МЕТОД
            };


Метод Cells:
Код

String ReturnAddress() {return Address;};


Ошибки:
W8030 Temporary used for parameter 'c' in call to 'ToTable::SetNextAddr(Cells &,int)'
E2064 Cannot initialize 'Cells &' with 'AnsiString'
E2342 Type mismatch in parameter 'c' (wanted 'Cells &', got 'AnsiString')

Автор: Wolf 24.12.2008, 14:14
Gunslinger, ты передаёш строку в функцию SetNextAddr(Cells& c,int g=2), в место Cells

компилятор же пишет хотелось бы то, а получаю это (wanted 'Cells &', got 'AnsiString')

Автор: mes 24.12.2008, 14:14
Цитата(Gunslinger @  24.12.2008,  14:08 Найти цитируемый пост)
  StartCellAddr=SetNextAddr(buff_addr);//------------ПРОБЛЕМНЫЙ МЕТОД
String SetNextAddr(Cells& c,int g=2)

Обратите как описана и с чем вызываете SetNextAddr

Автор: Gunslinger 24.12.2008, 14:33
Цитата(Wolf @  24.12.2008,  14:14 Найти цитируемый пост)
компилятор же пишет хотелось бы то, а получаю это (wanted 'Cells &', got 'AnsiString')

запомню, спасибо.
Перемкнуло, на возвращаемые значения только смотрел. Исправил, заработало.
Код

         void ExtrudStartAddr(Cells& c) {
                   StartCellAddr=SetNextAddr(c);
            };

mes, Wolf, спасибо за переключение!smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)