Описание тега forward-declaration

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

Круговые зависимости Python для функций в одном файле

У меня есть структура кода примерно так:- def send_message(msg): print msg + "\n" x.new_message("You",msg) class GUI(Frame): def createWidgets(self): self.input.bind('<Key-Return>',self.send) def send(self, event): send_message(self.contents.g…
10 апр '17 в 13:30
1 ответ

Перекрестные ссылки, предварительные декларации и т. Д. В каком порядке?

Позволять: class A { typedef A (* func_t)( A a ); func_t * _func; }; В каком порядке я должен написать это, и какое предварительное объявление мне нужно (если оно есть), чтобы оно компилировалось? Это мой настоящий код, если нужно: class Value { pub…
01 авг '14 в 12:07
1 ответ

Могу ли я по умолчанию использовать шаблонный аргумент в предварительной декларации

Поэтому я пытаюсь понять, что происходит с Boost's ptree реализация. В ptree.hpp basic_ptree на самом деле определяется: template<class Key, class Data, class KeyCompare> class basic_ptree В ptree_fwd.hpp есть то, что выглядит как предваритель…
3 ответа

Недопустимое использование неполного типа / предварительное объявление ошибок. возможно неправильное использование абстрактного класса? (C++)

Теперь я получаю ошибку: error: ‘oset<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Comparator’ is an inaccessible base of ‘CaseSensitive’ Я пытался выяснить проблему в течение нескольких часов без…
2 ответа

Расширения Python с C: staticforward

Поэтому мне нужно было использовать код модуля подпроцесса для добавления некоторых необходимых мне функций. Когда я пытался скомпилировать файл _subprocess.c, он выдает следующее сообщение об ошибке: Error 1 error C2086: 'PyTypeObject sp_handle_typ…
1 ответ

Почему я получаю неполный тип при использовании прямого объявления вместо #include?

Здесь у меня есть state_machine.h: #ifndef STATE_MACHINE_H #define STATE_MACHINE_H // state machine classes //#include "state_t.h" class state_t; class state_machine { public: state_machine(); void change_state(state_t *newState); void process_state…
31 окт '13 в 09:39
1 ответ

Предварительное объявление в Objective-C в дочернем классе

В нашем проекте у нас есть серия классов, которые работали нормально. В последнем обновлении Xcode 4.1 поведение, похоже, изменилось, выделив проблему в нашем коде, которая не была обнаружена ранее. Вот ситуация, используя примеры классов, чтобы суз…
10 апр '14 в 15:57
2 ответа

Форвард декларации и деструкторы

Представьте себе простой сегмент класса, который является его конструктором, это пара объектов из класса: class Point ; class LineSegment { public: LineSegment(Point* P1, Point* P2); ~LineSegment(); } ; Вопрос в деструкторе: нужно ли сначала удалять…
06 июн '12 в 08:50
1 ответ

Enum Форвардная декларация

Я пытаюсь правильно использовать форвардную декларацию для перечислений. Поэтому я искал в Интернете, но я не могу найти то, что работает. Я использую в шапке: // Forward declaration enum myEnumProcessState; Затем я использую это перечисление в стру…
28 фев '13 в 16:56
1 ответ

Ошибка использования неопределенного типа при круговом включении

Я написал два класса с этими зависимостями. //a.h class B: class A{ B *b ; A() { b = new B(this);} print(); } // b.h class A; class B{ A* a; B(A *_a){ this->a = _a } void foo() { a->print(); } // here i have error : use of undefined type a } Е…
2 ответа

Шаблонная функция C++ и прямые объявления

Я работаю над кодом, который компилирует и связывает (и даже выпускает коммерческие продукты) для Windows, используя MSVC. Это не компилируется с GCC, но я получаю следующие ошибки: .../CBaseValue.h: In member function 'bool CBaseValue::InstanceOf()…
4 ответа

C - предварительная декларация перечислений?

Форвардное объявление перечислений в C не работает для меня. Я искал в интернете и stackru, но все вопросы, касающиеся предварительных объявлений перечислителей, относятся к C++. Что вы делаете для объявления перечислителей в C? Разместите их в верх…
20 сен '11 в 04:39
8 ответов

Что такое предварительные объявления в C++?

По адресу: http://www.learncpp.com/cpp-tutorial/19-header-files/ Упоминается следующее: add.cpp: int add(int x, int y) { return x + y; } main.cpp: #include <iostream> int add(int x, int y); // forward declaration using function prototype int m…
21 янв '11 в 10:13
1 ответ

Синтаксис прямого объявления имеет другое поведение

Когда вперед объявляется член класса, вы можете сделать class Bar; Bar* m_barили короче class Bar* m_bar, Но разрешение имени, кажется, ведет себя по-другому. Например, это прекрасно компилируется: struct Foo { Foo(); struct Bar; Bar* m_bar; struct …
01 мар '13 в 18:01
4 ответа

Прямое объявление класса C++ в пространстве имен в в Objective C

Можно ли сделать предварительное объявление класса C++, который находится внутри пространства имен, в заголовочном файле Objective C? Класс C++ для последующей декларации в Objective C: namespace name { class Clazz { }; } Я знаю, что могу, если клас…
4 ответа

Форвард декларации и shared_ptr

Я пытаюсь реорганизовать свой код так, чтобы я использовал предварительные объявления вместо включения большого количества заголовков. Я новичок в этом и есть вопрос, касающийся boost::shared_ptr. Скажем, у меня есть следующий интерфейс: #ifndef I_S…
16 май '13 в 12:56
4 ответа

C++11 контейнер unique_ptr для заранее объявленного класса

g++ -std=c++11 не компилирует класс, который содержит контейнер, содержащий уникальные указатели, которые указывают на объявленный вперед класс. Вопросы: Зачем? Есть ли разумное решение? Пример кода: #include <vector> #include <memory> /…
06 янв '16 в 07:35
3 ответа

Как я могу использовать функцию-член объявленного вперед класса?

У меня есть 2 класса A и B и 4 следующих файла: ах #ifndef A_H #define A_H #include "B.h" class A { public: A(); int functionA(); B objectB; }; #endif //A_H Bh #ifndef B_H #define B_H class A; class B { public: B(); int functionB(); A * objectA; }; …
3 ответа

Как сделать предварительную декларацию для частного метода?

Я организую свои методы в группы, используя знак #pragma в реализации. Но иногда код реализации метода появляется под кодом, вызывающим этот метод, и я получаю предупреждения "Метод экземпляра не найден". Это происходит, когда я использую частные ме…
11 ноя '11 в 13:37
2 ответа

Что не так с этой предварительной декларацией

Несколько раз я использовал идиому прыщей, чтобы получить короткое время компиляции. Чтобы получить "хороший" заголовочный файл, я возвращаю указатель вектора, который содержит указатель QPoint (объект Qt). Давайте посмотрим на мой заголовочный файл…
22 апр '11 в 16:43