Страница 1 из 1

Ссылка на клас в поле класа :)

Добавлено: 04 июл 2007, 23:24
CyberM
вобщем есть типа такого:

Код: Выделить всё

class Bla{
public:
    int pole1;
    double pole2;
public: 
    Bla(int a){
    pole1=a;
    pole2=0;
     }
    int func1(){
     return pole1;
      }
};
class BlaBla{
public:
     int pole3;
      int pole3333;
     Bla *bla[10];
public:
    
   BlaBla(int n)
   {
       pole3=n;
        pole3333=0;
   for(int i<0; i<n;  i++)
           {
                if(!bla[i])
                    {
                          bla[i]=new Bla(a);
                     }
           }
     
   }
   int func2(){
   for(int i<0; i<n;  i++)
           {
                if(bla[i]->pole1==1)
                    {
                          bla[i]->pole2=10;
                     }
           }   


   }
и при обращении к полю
например тут:

Код: Выделить всё

if(bla[i]->pole1==1)
праграма виснет намертво smile
как сделать правильно? )

Re: Ссылка на клас в поле класа :)

Добавлено: 05 июл 2007, 00:53
Hawk
if(!bla) !!!
{
bla=new Bla(a);
}

В массиве bla лежат любые значения случайные, ты их не проинициализировал. А С++ не пишет туда нули сам. убери просто эту проверку и создавай сразу new. Конструктор в любом случае один раз при создании экземпляра класса вызывается. Так что условие тут совершеннг не нужно и не верно.

Re: Ссылка на клас в поле класа :)

Добавлено: 05 июл 2007, 13:07
Romeo
А ещё обязательно нужен деструктор в классе BlaBla. Он должен вызывать delete bla в цикле. Иначе - это мэмори лик.