Typedefs внутри класса - PullRequest
       6

Typedefs внутри класса

1 голос
/ 07 февраля 2012

Допустим, у меня есть класс с дорогим конструктором, и, скажем, мне не нужно создавать конструктор, потому что он "простой". Внутри класса я хочу поместить typedef. Все вместе это выглядит так:

class Expensive {
public:
    typedef double data_type;
    data_type data[100000][100000];
};

Теперь, в моем коде вызова, если я сделаю:

Expensive::data_type singleValue;

это собирается создать временный экземпляр Expensive и выделить все это пространство для данных только для того, чтобы получить доступ к typedef?

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012

Проще говоря: Нет. Операция не имеет никакого эффекта во время выполнения. Даже простое объявление double не гарантирует никакого эффекта во время выполнения, поскольку вы его не используете;)

0 голосов
/ 07 февраля 2012

Нет; вы получаете доступ к тому, что фактически является статическим членом класса. Экземпляр не создан, и, следовательно, нет огромного огромного массива.

...