Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Передача ссылки на класс


Автор: lesniken 22.10.2010, 11:09
Не могу понять почему ругается на такое объявление функции
Код

int __fastcall CreatTree(UnicodeString Dir, CTree* _fileTree);

пишет
[BCC32 Error] Unit1.h(39): E2303 Type name expected
[BCC32 Error] iosfwd(254): E2238 Multiple declaration for 'char_traits<wchar_t>::int_type'
[BCC32 Error] iosfwd(136): E2344 Earlier declaration of 'char_traits<wchar_t>::int_type'
[BCC32 Error] iosfwd(260): E2238 Multiple declaration for 'char_traits<wchar_t>::assign(wchar_t &,const wchar_t &)'
[BCC32 Error] iosfwd(141): E2344 Earlier declaration of 'char_traits<wchar_t>::assign(wchar_t &,const wchar_t &)'
[BCC32 Error] iosfwd(265): E2238 Multiple declaration for 'char_traits<wchar_t>::eq(const wchar_t &,const wchar_t &)'
...

и еще подскажите пожалуйста как вызвать метод clear() для каждого элемента списка children
Код

class CTree
{
public:
   CTree();
   CTree(UnicodeString _name, UnicodeString _dir);
   void clear();

   CFile* file;

   std::list<CTree*> children;

};

Код

void CTree::clear()
{
    std::list<CTree*>::iterator i;
    for(i = children.begin(); i != children.end(); i++)
    {
        i->clear();////////////////////////////////
    }
    children.clear();
}




Автор: lesniken 22.10.2010, 14:11
с первым вопросом разобрался, не туда h-фаил подключил блин...
со втрорым тоже, так работает
Код

    for(std::list<CTree*>::iterator it = children.begin(); it != children.end(); ++it)
    {
        (*it)->clear();
    }

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