Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2013, 19:17   #1
Theseus
Пользователь
 
Аватар для Theseus
 
Регистрация: 11.02.2009
Сообщений: 29
Восклицание Проблема с forward declaration

Здравствуйте! Есть проблема при компиляции кода который использует forward declaration для избежания зацикливания хедеров, код выглядит приблизительно следующим образом:

header_b.h
Код:
class A; // here is a problem

class B {
    opearator const A *();
    // some code ....
};
header_a.h
Код:
template <typename T>
class base_A {
// class declaration
// ...
};

typedef base_A<type1> some_new_type;
typedef base_A<type2> A;  // here is a problem!!
file_b.cpp
Код:
#inlcude "header_a.h"

B::opearator const A*() {
    // here use the class A
    // some code
    // ...
}
Вот какие проблемы получаю в реальном коде:



не пойму в чём здесь проблема и что вообще делать. Пробовал заменить
Код:
typedef base_string<wchar_t> ustring;
на
Код:
class ustring :public base_string<wchar_t> {};
в таком случае пишет что нет подходящего конструктора:
Цитата:
D:\Dropbox\source\cml\characters.h: 602: error: no matching function for call to 'cml::base_string<wchar_t>::base_st ring()'
Помогите пожалуйста, а то что-то ничего не приходит в голову.

Последний раз редактировалось Theseus; 03.01.2013 в 16:00.
Theseus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мой браузер Forward jekaz Софт 15 09.04.2010 19:45
Процедурные директивы Far и Forward whatever Помощь студентам 4 23.11.2009 18:15
Forward declaration из чужого namespace futureteamleader Общие вопросы C/C++ 1 17.10.2009 04:46
[Pascal Error] test_component.pas(43): E2037 Declaration of 'MouseUp' differs from previous declaration Altera Компоненты Delphi 3 10.03.2008 19:44