Не называет тип в C++

как показывает опыт, используйте стек каждый раз, когда Вы можете. т.е. когда переменная никогда не необходима за пределами того объема.

быстрее, вызывает меньше фрагментации и собирается избежать других издержек, связанных с вызовом malloc или новый. выделение прочь стека является несколькими ассемблерными операциями, malloc или новый несколько сотен строк кода в эффективном внедрении.

его никогда не лучший для использования "кучи"... просто неизбежной.:)

7
задан RageZ 19 November 2009 в 05:13
поделиться

2 ответа

Включение типа CP_M_ReferenceCounted, вероятно, лексически ПОСЛЕ определения типа ... можете ли вы напрямую связать эти два файла или воспроизвести проблему в простом примере?

2
ответ дан 7 December 2019 в 05:24
поделиться

Похоже, вам нужно обратиться к пространству имен соответственно. Например, следующие yyy.h и test.cpp имеют ту же проблему, что и ваш:

//yyy.h
#ifndef YYY_H__
#define YYY_H__

namespace Yyy {

class CP_M_ReferenceCounted
{
};

}

#endif

//test.cpp
#include "yyy.h"

typedef CP_M_ReferenceCounted FxRC;


int main(int argc, char **argv)
{

        return 0;
}

Ошибка будет

...error: CP_M_ReferenceCounted does not name a type

Но добавьте строку «using namespace Yyy;» устраняет проблему, как показано ниже:

//test.cpp
#include "yyy.h"
// add this line
using namespace Yyy;

typedef CP_M_ReferenceCounted FxRC;
...

Поэтому проверьте область пространства имен в заголовках .h.

5
ответ дан 7 December 2019 в 05:24
поделиться
Другие вопросы по тегам:

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