Что это такое?
От: Nickola999  
Дата: 28.09.03 12:46
Оценка:
В классе написаное следующее:

class IntB
{        
  public:
    IntB (unsigned n)  : buffer(new int[n]),  int_my(0){ }
//
....


Зачем это надо?
Почему бы не написать:

class IntB
{        
  public:
    IntB (unsigned n)
  {
   buffer = new int[n];
   int_my=0;
  }
//
...


Thanx!
Re: Что это такое?
От: HeaveN Россия  
Дата: 28.09.03 12:50
Оценка:
Здравствуйте, Nickola999, Вы писали:

N>В классе написаное следующее:


N>
N>class IntB
N>{        
N>  public:
N>    IntB (unsigned n)  : buffer(new int[n]),  int_my(0){ }
N>//
N>....

N>


N>Зачем это надо?

N>Почему бы не написать:

N>
N>class IntB
N>{        
N>  public:
N>    IntB (unsigned n)
N>  {
N>   buffer = new int[n];
N>   int_my=0;
N>  }
N>//
N>...

N>


N>Thanx!


Эти куски кода абсолютно идентичны. Просто иногда инициализацию переменных в конструкторе пишут через двоеточие, иногда в теле метода. Как кому нравится.
... << RSDN@Home 1.1 beta 2 >>
Нет такого закона, что человеку летать нельзя...
Re: Что это такое?
От: Cadet  
Дата: 28.09.03 12:51
Оценка: 1 (1)
Здравствуйте, Nickola999, Вы писали:

N>В классе написаное следующее:


N>
N>class IntB
N>{        
N>  public:
N>    IntB (unsigned n)  : buffer(new int[n]),  int_my(0){ }
N>//
N>....

N>

Здесь мы сразу создаем инициализированные объекты.

N>Зачем это надо?

N>Почему бы не написать:

N>
N>class IntB
N>{        
N>  public:
N>    IntB (unsigned n)
N>  {
N>   buffer = new int[n];
N>   int_my=0;
N>  }
N>//
N>...

N>

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

N>Thanx!

See ya...
... << RSDN@Home 1.1 beta 2 >>
Re[2]: Что это такое?
От: Nickola999  
Дата: 28.09.03 13:32
Оценка:
OK, всем спасибо!
Re[2]: Что это такое?
От: Serguei666 Беларусь  
Дата: 29.09.03 16:40
Оценка:
Здравствуйте, HeaveN, Вы писали:

HN>Здравствуйте, Nickola999, Вы писали:


N>>В классе написаное следующее:


N>>
N>>class IntB
N>>{        
N>>  public:
N>>    IntB (unsigned n)  : buffer(new int[n]),  int_my(0){ }
N>>//
N>>....

N>>


N>>Зачем это надо?

N>>Почему бы не написать:

N>>
N>>class IntB
N>>{        
N>>  public:
N>>    IntB (unsigned n)
N>>  {
N>>   buffer = new int[n];
N>>   int_my=0;
N>>  }
N>>//
N>>...

N>>


N>>Thanx!


HN>Эти куски кода абсолютно идентичны. Просто иногда инициализацию переменных в конструкторе пишут через двоеточие, иногда в теле метода. Как кому нравится.

... а иногда и просто нет выбора, например, если переменные-члены имеют тип "ссылка"
Хотите сказать 'спасибо'? Тогда поставьте оценку
Re[3]: Что это такое?
От: Denwer Россия  
Дата: 30.09.03 06:31
Оценка:
Здравствуйте, Serguei666, Вы писали:

S>Здравствуйте, HeaveN, Вы писали:


S>... а иногда и просто нет выбора, например, если переменные-члены имеют тип "ссылка"


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