Доступ к статическим переменным класса в C++?

Я не могу использовать rdtsc, потому что он, насколько я знаю, только относительно.

blockquote>

Относительно некоторого неопределенного момента времени, например, Время включения процессора.

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

blockquote>

Вы используете rdtsc для измерения длительностей в циклах ЦП. Вы также можете использовать значение в качестве момента времени с неопределенного времени. Вы также можете узнать время настенных часов того неопределенного времени.


Если вы используете gcc, __builtin_ia32_rdtsc создает лучшую сборку, чем версии с ручным кодированием .

27
задан Community 23 May 2017 в 10:29
поделиться

3 ответа

Вы должны добавить следующую строку в файл реализации :

int Foo::bar = you_initial_value_here;

Это необходимо для у компилятора есть место для статической переменной.

60
ответ дан Drakosha 28 November 2019 в 04:11
поделиться

It's the correct syntax, however, Foo::bar must be defined separately, outside of the header. In one of your .cpp files, say this:

int Foo::bar = 0;  // or whatever value you want
16
ответ дан Chris Jester-Young 28 November 2019 в 04:11
поделиться

You need add a line:

int Foo::bar;

That would define you a storage. Definition of static in class is similar to "extern" -- it provides symbol but does not create it. ie

foo.h

class Foo {
    static int bar;
    int adder();
};

foo.cpp

int Foo::bar=0;
int Foo::adder() { ... }
15
ответ дан Artyom 28 November 2019 в 04:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: