Russian Qt Forum
Ноябрь 25, 2024, 12:14
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Наследование
Страниц:
1
2
[
3
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Наследование (Прочитано 31491 раз)
ruzik
Гость
Re: Наследование
«
Ответ #30 :
Февраль 11, 2011, 20:43 »
Нет вы не правы, это как и ; после функции, это лишь стиль программирования, это можно делать а можно и нет, попробуйте поставьте, лично у меня VS никак не реагирует
Записан
serg_hd
Хакер
Offline
Сообщений: 668
Re: Наследование
«
Ответ #31 :
Февраль 11, 2011, 20:46 »
Причём здесь "не прав"? Это вобщем-то компилятор мне сказал)) У меня gcc, мелкософтовский компилер презираю и не скрываю этого.
Записан
kubuntu/Win7/x64/NetBeans
SimpleSunny
Гость
Re: Наследование
«
Ответ #32 :
Февраль 11, 2011, 21:04 »
То что компилируется не означает, что это правильно.
По поводу ; после тела функций можете почитать в этой теме
http://www.rsdn.ru/forum/cpp/350584.all.aspx
Записан
Fat-Zer
Гость
Re: Наследование
«
Ответ #33 :
Февраль 11, 2011, 21:05 »
и ещё для стандартных хедеров приняты угловые скобки: #include <QLineEdit>
Записан
BRE
Гость
Re: Наследование
«
Ответ #34 :
Февраль 11, 2011, 21:19 »
Цитата: Fat-Zer от Февраль 11, 2011, 21:05
и ещё для стандартных хедеров приняты угловые скобки: #include <QLineEdit>
Скорее не просто потому что так принято, а из-за разного порядка поиска файлов при использовании "..."|<...>.
Записан
serg_hd
Хакер
Offline
Сообщений: 668
Re: Наследование
«
Ответ #35 :
Февраль 11, 2011, 21:20 »
Цитата: Fat-Zer от Февраль 11, 2011, 21:05
и ещё для стандартных хедеров приняты угловые скобки: #include <QLineEdit>
насколько знаю, такие использовать принято для "внешних" библиотек. Для своих файлов проекта - " ". Как уже отметил BRE из-за разного поиска.
Цитата: SimpleSunny от Февраль 11, 2011, 21:04
То что компилируется не означает, что это правильно.
Никто и не говорит обратного. Но для данного примера и компилятора это правильно.
«
Последнее редактирование: Февраль 11, 2011, 21:22 от serg_hd
»
Записан
kubuntu/Win7/x64/NetBeans
SimpleSunny
Гость
Re: Наследование
«
Ответ #36 :
Февраль 11, 2011, 21:34 »
Цитата: serg_hd от Февраль 11, 2011, 21:20
Никто и не говорит обратного.
Как никто, если
Цитата: ruzik от Февраль 11, 2011, 20:43
Нет вы не правы, это как и ; после функции, это лишь стиль программирования, это можно делать а можно и нет, попробуйте поставьте, лично у меня VS никак не реагирует
Цитата: serg_hd от Февраль 11, 2011, 21:20
Но для данного примера и компилятора это правильно.
Есть стандарт на С++. При беглом просмотре 16 главы (интересно стало) не нашел упоминания про ;, а только формы:
Код
C++ (Qt)
# include "q-char-sequence" new-line
# include <h-char-sequence> new-line
ИМХО лучше не писать код не соответствующий стандарту, если это не критично.
Записан
serg_hd
Хакер
Offline
Сообщений: 668
Re: Наследование
«
Ответ #37 :
Февраль 11, 2011, 21:56 »
Цитата: SimpleSunny от Февраль 11, 2011, 21:34
Цитата: serg_hd от Февраль 11, 2011, 21:20
Никто и не говорит обратного.
Как никто, если
Цитата: ruzik от Февраль 11, 2011, 20:43
Нет вы не правы, это как и ; после функции, это лишь стиль программирования, это можно делать а можно и нет, попробуйте поставьте, лично у меня VS никак не реагирует
Я подумал ваш ответ был на мой пост, а не на пост ruzik'a. Конечно, мелкософт давно славится своим "соблюдением стандартов", тут без комментариев. И поэтому если gcc/g++ молчат с учётом соответствующих флагов компиляции, то это облагораживает
«
Последнее редактирование: Февраль 11, 2011, 22:01 от serg_hd
»
Записан
kubuntu/Win7/x64/NetBeans
ruzik
Гость
Re: Наследование
«
Ответ #38 :
Февраль 11, 2011, 22:30 »
Забыл вставить ошибки, которые выдает, вот:
Ошибка 1 error C2084: функция "RizekLineEdit::RizekLineEdit(QWidget *)" уже имеет текст реализации c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.cpp 4
Ошибка 2 error C2084: функция "RizekLineEdit::~RizekLineEdit(void)" уже имеет текст реализации c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.cpp 9
Записан
brankovic
Гость
Re: Наследование
«
Ответ #39 :
Февраль 11, 2011, 23:51 »
Цитата: ruzik от Февраль 11, 2011, 22:30
Забыл вставить ошибки, которые выдает, вот:
Ошибка 1 error C2084: функция "RizekLineEdit::RizekLineEdit(QWidget *)" уже имеет текст реализации c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.cpp 4
Ошибка 2 error C2084: функция "RizekLineEdit::~RizekLineEdit(void)" уже имеет текст реализации c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.cpp 9
Посмотрите внимательно, скорее всего у вас реализация методов и в теле класса и в RizekLineEdit.cpp.
То что тут пишут про .h и .cpp файлы это опять же только пример стиля программирования. Например, можно вообще всё в одном .cpp написать без заголовков, или полностью библиотеку пометить в .h файл.
Записан
ruzik
Гость
Re: Наследование
«
Ответ #40 :
Февраль 12, 2011, 00:20 »
brankovic посмотрите чуть выше, я код залил, описание функций только в cpp, а в h только объявление
Записан
brankovic
Гость
Re: Наследование
«
Ответ #41 :
Февраль 12, 2011, 01:05 »
Цитата: ruzik от Февраль 12, 2011, 00:20
brankovic посмотрите чуть выше, я код залил, описание функций только в cpp, а в h только объявление
Да, я видел, код правильный. Подумал, что опять для форума что-то сократили неудачно. Вы компилируете из студии, может какой-то глюк, например файл дважды добавлен в проект или кусок класса где-то от копи-пейста остался?
Одним словом, я ошибок не вижу (кроме include+; и "" вместо <>). Попробуйте вынести свой же (опубликованный) пример в новый проект и всё должно собраться.
Записан
ruzik
Гость
Re: Наследование
«
Ответ #42 :
Февраль 12, 2011, 11:50 »
Нет стало только хуже, теперь 34 ошибки, вот они
Ошибка 1 error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "qt_meta_data_RizekLineEdit" c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\GeneratedFiles\Debug\moc_RizekLineEdit.cpp 20
Ошибка 2 error C2377: uint: переопределение; typedef нельзя перегрузить другим символом c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\GeneratedFiles\Debug\moc_RizekLineEdit.cpp 20
Ошибка 3 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\GeneratedFiles\Debug\moc_RizekLineEdit.cpp 20
Ошибка 4 error C2440: инициализация: невозможно преобразовать 'int [15]' в 'const uint *' c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\GeneratedFiles\Debug\moc_RizekLineEdit.cpp 42
Ошибка 5 error C2084: функция "RizekLineEdit::RizekLineEdit(QWidget *)" уже имеет текст реализации c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.cpp 4
Ошибка 6 error C2084: функция "RizekLineEdit::~RizekLineEdit(void)" уже имеет текст реализации c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.cpp 9
Ошибка 7 error C2011: RizekLineEdit: переопределение типа "class" c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 3
Ошибка 8 error C2027: использование неопределенного типа "RizekLineEdit" c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 11
Ошибка 9 error C2143: синтаксическая ошибка: отсутствие ")" перед "*" c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 11
Ошибка 10 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 11
Ошибка 11 error C2079: "QWidget" использует неопределенный class "RizekLineEdit" c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 11
Ошибка 12 error C2059: синтаксическая ошибка: ) c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 11
Ошибка 13 error C2470: parent: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 12
Ошибка 14 error C2065: parent: необъявленный идентификатор c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 12
Ошибка 15 error C2027: использование неопределенного типа "RizekLineEdit" c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 16
Ошибка 16 error C2059: синтаксическая ошибка: ) c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 16
Ошибка 17 error C2143: синтаксическая ошибка: отсутствие ";" перед "{" c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 17
Ошибка 18 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) c:\documents and settings\rustam\мои документы\visual studio 2008\projects\mybr\mybr\RizekFoundationClasses\RizekLineEdit\RizekLineEdit.h 17
Ошибка 19 error C3867: QObject::parent: в вызове функции отсутствует список аргументов; используйте "&QObject::parent" для создания указателя на член c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 6
Ошибка 20 error C2297: *: недопустимо, правый оператор имеет тип "QObject *(__thiscall QObject::* )(void) const" c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 6
Ошибка 21 error C2275: Qt::WFlags: недопустимое использование этого типа в качестве выражения c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 6
Ошибка 22 error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "flags" c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 6
Ошибка 23 error C2761: {ctor}: повторное объявление функции не разрешается c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 6
Ошибка 24 error C2059: синтаксическая ошибка: ) c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 6
Ошибка 25 error C2143: синтаксическая ошибка: отсутствие ")" перед "," c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 7
Ошибка 26 error C2550: void __cdecl `dynamic initializer for 'parent''(void): список инициализации конструктора должен использоваться только в месте определения конструктора c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 7
Ошибка 27 error C2059: синтаксическая ошибка: ) c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 7
Ошибка 28 error C2550: void __cdecl `dynamic initializer for 'flags''(void): список инициализации конструктора должен использоваться только в месте определения конструктора c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 8
Ошибка 29 error C2143: синтаксическая ошибка: отсутствие ";" перед "{" c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 8
Ошибка 30 error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 8
Ошибка 31 error C2027: использование неопределенного типа "RizekLineEdit" c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 66
Ошибка 32 error C2227: выражение слева от "->text" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 66
Ошибка 33 error C2027: использование неопределенного типа "RizekLineEdit" c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 73
Ошибка 34 error C2227: выражение слева от "->setFixedWidth" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 73
А в основных cpp и h, я подключаю только h, то есть:
#include "RizekFoundationClasses/RizekLineEdit/RizekLineEdit.h"
P.S. извините что не под спойлером, не нашел кнопку спойлера
Записан
Страниц:
1
2
[
3
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...