![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
ANTON_AL |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 292 Регистрация: 27.1.2007 Репутация: нет Всего: нет |
Добрый день!
Вот, хочу сделать шаблонный тип данных, который будет представлять действительное число.... Параметры числа: * Carrier - собственно тип, в котором будут храниться данные * DecPart - кол-во разрядов для целой части * Count - кол-во чисел, которые можно запихнуть в тип Carrier ( например, если Carrier = DWORD, то в него можно поместить 4 числа типа BYTE, т.к 32 = 8 + 8 + 8 + 8 ) Но это пока не важно, вопрос не в этом. Вот код.
Так будет происходит работа с этим типом, причём, в операциях должно выполняться правило: TypeLeft = TypeLeft + TypeRight; т.е результат операции такого типа, какой у левого операнда.
Ну и наконец, проблема: компилятор выдаёт 16 ошибок, как с ними бороться, что не правильно ?? ----------------------------------------------------- С Уважением, Антон. Это сообщение отредактировал(а) ANTON_AL - 10.4.2007, 14:18 |
||||
|
|||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Встроенным в мозг компилятором пока еще не обзавелись, поэтому выдай и ты нам эти 16 ошибок ![]() |
|||
|
||||
ANTON_AL |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 292 Регистрация: 27.1.2007 Репутация: нет Всего: нет |
Ну если так проще, нежели создать проект и посмотреть, то вот:
Error 7 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int real.h 32 Error 9 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int real.h 32 Error 13 error C2993: 'DSPRealType' : illegal type for non-type template parameter 'Right' real.h 88 Error 1 error C2993: 'DSPRealType' : illegal type for non-type template parameter 'Real' real.h 29 Error 12 error C2993: 'DSPRealType' : illegal type for non-type template parameter 'Left' real.h 84 Error 10 error C2864: 'DSPReal<Real>::m_Val' : only static const integral data members can be initialized within a class real.h 32 Error 15 error C2783: 'DSPReal operator +(DSPReal &,DSPReal &)' : could not deduce template argument for 'Right' main.cpp 35 Error 14 error C2783: 'DSPReal operator +(DSPReal &,DSPReal &)' : could not deduce template argument for 'Left' main.cpp 35 Error 16 error C2676: binary '+' : 'DSPRealType<Carrier,DecPart,Count>' does not define this operator or a conversion to a type acceptable to the predefined operator main.cpp 35 Error 2 error C2653: 'Real' : is not a class or namespace name real.h 32 Error 3 error C2653: 'Real' : is not a class or namespace name real.h 32 Error 8 error C2473: 'Val' : looks like a function definition, but there is no parameter list. real.h 32 Error 5 error C2146: syntax error : missing ';' before identifier 'Val' real.h 32 Error 11 error C2146: syntax error : missing ';' before identifier 'Real' real.h 34 Error 4 error C2146: syntax error : missing ')' before identifier 'Val' real.h 32 Error 6 error C2059: syntax error : ')' real.h 32 Только о многом ли это скажет.... ?? Это сообщение отредактировал(а) ANTON_AL - 10.4.2007, 15:22 |
|||
|
||||
vinter |
|
||||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
я конешно может чего не знаю, но что означает следуtofz конструкция?
а это че такое
что это за глубокомысленная конструкция??
короче, по моему тебе надо книжку повнимательнее почитать.. |
||||||
|
|||||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Что за жесть?
![]() Судя по всему должно быть нечто такое?
Это сообщение отредактировал(а) Xenon - 10.4.2007, 16:04 |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Вообще что вообе за ... operator+ возвращает DSPReal и принимает DSPReal, хотя в main () у тебя участвуют DSPRealType как слева от = так и с обеих сторон от знака +. Если ты тут надеешься на неявное преобразование DSPReal в DSPRealType, то зря. Иначе я вообще не понял чего ты тут сделал - опеределил два класса, написал перегрузку оператора сложения для второго класса и пытаешься ее использоваться для первого класса, при чем не определив при этом операторов присваивания классу первого типа классу второго и преобразований
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |