Инициализация массива члена класса
От: Sabrian  
Дата: 31.01.06 23:05
Оценка:
Как известно сабж в С++ отсутствует.
Еще больше раздражает автоматический вызов конструктора по умолчанию для элементов массива.

вот код:


template< class T, unsigned N >
class vect;

template< class T >
class vect< T, 3 >
{
private:
    T data[3];
    
public:
    inline vect( const T& x, const T& y, const T& z )
    {
            data[0].~T();
            data[1].~T();
            data[2].~T();

        new(data + 0) T(x);
        new(data + 1) T(y);
        new(data + 2) T(z);
    }
};


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