Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исходные файлы с описанием класса, Как правильно 
:(
    Опции темы
baldina
Дата 21.1.2011, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



ну ладно, ладно  smile 
определение с реализацией попутали. С++ запутанный язык  smile 
PM MAIL   Вверх
efpies
Дата 22.1.2011, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 20.6.2009
Где: СПб

Репутация: нет
Всего: нет



Всем спасибо за подсказки. smile Многое прояснилось, всё работает, как надо.

Цитата(borisbn @  19.1.2011,  11:54 Найти цитируемый пост)
Код

#if !defined( _SOME_CLASS_USING_H_INCLUDED_ )
#define _SOME_CLASS_USING_H_INCLUDED_

class SomeClass;   // Вот так

class SomeClassUsing
{
   public:
       SomeClassUsing(); 
       ~SomeClassUsing();

   private:
       SomeClass * m_someClass;
};
#endif //!defined( _SOME_CLASS_USING_H_INCLUDED_ )

Правда  просто объявить не получится, если SomeClassUsing должен наследовать SomeClass. Нужно подключать SomeClass.h
PM MAIL   Вверх
mes
Дата 22.1.2011, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(efpies @  22.1.2011,  01:40 Найти цитируемый пост)
Правда  просто объявить не получится, если SomeClassUsing должен наследовать SomeClass.

для наследования нужно иметь полное определение наследуемого предка.. т.е. объявления недостаточно
также полное определение нужно для создания/удаления, обращения к составляющим(членам), sizeof, и т.д..
объявления достаточно для использования  ссылки или указателя.. 




--------------------
PM MAIL WWW   Вверх
efpies
Дата 23.1.2011, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 20.6.2009
Где: СПб

Репутация: нет
Всего: нет



Возникла такая проблема: некоторые методы считаются неописанными (unresolved external), их нужно описать именно в заголовочном файле. С чем это может быть связано?
PM MAIL   Вверх
efpies
Дата 23.1.2011, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 20.6.2009
Где: СПб

Репутация: нет
Всего: нет



UPD: с inline-функциями такая штука
PM MAIL   Вверх
bsa
Дата 23.1.2011, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



efpies, почитай определение встраиваемых функций. Если лень, то в двух словах - тело inline функции должно быть в хидере.
PM   Вверх
baldina
Дата 24.1.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата(bsa @  23.1.2011,  10:20 Найти цитируемый пост)
в двух словах - тело inline функции должно быть в хидере. 

efpies, тут главное не то, что тело inline функции в хидере, а что оно должно быть доступно в момент компиляции. 
в .h его помещают именно для этой цели.
PM MAIL   Вверх
semibug
Дата 24.1.2011, 15:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 27.3.2009

Репутация: нет
Всего: нет



Хочу обратить внимание на фундамент - заголовочные файлы всего лишь программистское соглашение, компилятор (канонический) ничего про них не знает.
Собственно компилирование начинается уже после обработки текста препроцессором, который поставит на место #include текст из соответствующего файла. Не важно какое у него будет расширение и имя, хоть cpp, хоть exe.

Как то раз попалось даже такое извращение - вместо makefile с перечислением сырцов, компилировался один файл, содержащий #include всех остальных файлов проекта.

Присоединяюсь к мнению гуру, один класс - один файл, и, imho, чем он меньше, тем лучше.




PM   Вверх
wildwolf
Дата 24.1.2011, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.1.2011

Репутация: нет
Всего: нет



я извиняюсь, ребят, помогите пожалуста..
сам изучал с++ .. а тут девушка с задачками подошла, не могу разобраться..
подскажите..
"Дано тело функции main(). Определить что будет выведено на экран в результате выполнения данного кода, и почему (дать пояснения к ответу).
Код:
int n=5;
char * b="0";
printf("%u\n", open("f", O_RONLY));
close(fd);
Примечание: Файла f не существует."
и вторая-
"Пояснить результаты работы программы
#include<unistd.h>
main(){
printf("один/n");
fork();
fork();
printf("два/n");
wait();
printf("три/n");
printf("четыре/n");
}"
или хотя б подскажите где и скать и что за язык..спасибо заранее..

Это сообщение отредактировал(а) wildwolf - 25.1.2011, 11:09
PM MAIL   Вверх
baldina
Дата 25.1.2011, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



C++ изучал, говоришь?  smile

Добавлено через 11 минут и 42 секунды
язык С. с небольшими (непринципиальными) исправлениями будет компилироваться как С++.

первая программа выведет Очень Большое Число, соотв. максимальному беззнаковому целому на целевой системе. это потомучто open() возвращает int(-1), а спецификация формата вывода - беззнаковая. в 32-битной среде это 4294967295.

вторая программа предназначена для исполнения в POSIX-совместимой среде. *nix например. вызов fork() порождает новый процесс (клон текущего) в точке вызова. wait () приостанавливает текущий процесс, пока один из порожденных процессов не завершится (или не ждет, если порожденных процессов нет). так что теперь можешь сам сообразить что она выведет. 
PM MAIL   Вверх
borisbn
Дата 25.1.2011, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



baldina, "+1" smile

надо бы в эту тему скопировать

#inclyde опять же улыбнул

Это сообщение отредактировал(а) borisbn - 25.1.2011, 10:57


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
wildwolf
Дата 25.1.2011, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.1.2011

Репутация: нет
Всего: нет



спасиб огромное smile 
изучал, но только поверхносно..
"include" - опечатался=)
PM MAIL   Вверх
Ignat
Дата 25.1.2011, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



Цитата(baldina @  25.1.2011,  10:28 Найти цитируемый пост)
так что теперь можешь сам сообразить что она выведет.  


Это, кстати, одна из моих любимых задачек. Выведет она не то, что ожидается =)
Чтобы она вывела, что ожидается, нужно ставить flush() после каждого вывода.




--------------------
Теперь при чем :P
PM   Вверх
wildwolf
Дата 25.1.2011, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.1.2011

Репутация: нет
Всего: нет



а что она выведет? если не секрет)
PM MAIL   Вверх
baldina
Дата 25.1.2011, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата(Ignat @  25.1.2011,  11:23 Найти цитируемый пост)
не то, что ожидается

 smile 
что-то мне подсказывает, что от девушки требуют "что ожидается"
Цитата

Пояснить результаты работы программы

интересно, результат приводится?
PM MAIL   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.