Вопросы кандовому делелоперу С/C++, чтоб ....
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Я не навызываю. Делай, как знаешь. Ты говоришь, что что хочешь инициализировать члены 0, но это не надо в твоём примере (у тебя дальше всё присваивается в цикле). Пытаешься инициализировать переменные, но при этом одну инициализируешь как vol(0), a другую next , как next = NULL, но уже в теле конструктора. Почему.... почему не обе в теле конструктора?
.... складывается впечатление, что ты хочешь написать класс. Но ведь сам говоришь - это всего лишь пример....
.... складывается впечатление, что ты хочешь написать класс. Но ведь сам говоришь - это всего лишь пример....
- ajkj3em
- Маньяк
- Сообщения: 2063
- Зарегистрирован: 12 ноя 2006, 06:53
Re: Канещна не работает=)
это против стандарта. то что это принимается некоторыми компиляторамиvg писал(а):Зачем .... достаточно void main ( void )
за valid syntax еще не повод так писать везде :)
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Re: Канещна не работает=)
Спасибо за замечание. Логично. Посмотрю.ajkj2em писал(а):это против стандарта. то что это принимается некоторыми компиляторамиvg писал(а):Зачем .... достаточно void main ( void )
за valid syntax еще не повод так писать везде
Редактирую, чтобы не флудить ...
Стандарт C++ (standard ISO/IEC 14882) допускает, как int main() так и int main(int argc, char* argv[]). Таким образом только обязывают возвращать код возврата явно return-ом.
3.6.1 Main function [basic.start.main]
1 A program shall contain a global function called main, which is the
designated start of the program.
<skip>
2 This function is not predefined by the implementation, it cannot be
overloaded, and its type is implementation-defined. All implementa
tions shall allow both of the following definitions of main:
int main() { /* ... */ }
and
int main(int argc, char* argv[]) { /* ... */ }
...
Компиллеро-зависимо у MS, где допускается:
Microsoft Specific
The types for argc and argv are defined by the language. The names argc, argv, and envp are traditional, but are not required by the compiler. See Argument Definitions for more information and for an example.
Alternatively, the main and wmain functions can be declared as returning void (no return value). If you declare main or wmain as returning void, you cannot return an exit code to the parent process or operating system using a return statement; to return an exit code when main or wmain is declared as void, you must use the exit function.
Тоже у Борланда во всех их компиллерах, начиная с версии C++ 3.1 (кажется и Turbo C++ 1.1) если правильно помню, конечно, Borland Specific тоже.
- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
Ну по кр мере сытый\)
О чем ето мы там болтали, а вспомнил
твою сентенцию (имется ввиду заявление) про обилие скобок не понял, по мне их ровно стока скока нада.
по поводу void main(void) стандарт гласит
int main() { /* ... */ }
int main(int argc, char* argv[])
ето присутсвует и в С и в С++ стандарте.
В С++ тока прсиутсвуеть
main() { /* ... */ }
В С++ мона не делать return по умолчанию вернется 0 Что означаеть усе карашо.
-------------------- эту тему закрыли-----------
Что касается остального еще раз повторюсь я написал
tagNode nodes[5]; - массив, я хочу убедиться что указатели внутри структуры (tagNode* next) будут обнулены, для меня ето важно я использую 0 как остановку любой навигации по этому массиву, и хочу быть сразу убежден что у меня все указатели равны 0. Я не помню что говорит стандар о значении указателей по умолчанию - я вынужден инициализировать их. Обзая практика - инициализация обхектов в списке иициалиазации, указателей в теле. Я просто следую за набитой рукой. Почему общая практика - для обзейктов такая контструкция быстрее. Дл яуказателей - нет шансов да и смысла использовать такую конструкцию в списке инициализации.
НЕ ВСЕ присваиваеться в цикле=)
tagNode nodes[5];
int i;
for (i = 0, nodes[4].vol = 5; i < 4; ++i) {
nodes.vol = i+1;
nodes.next = nodes + i + 1;
}
Где тут присваивается 0 для последней ноды? Ну давай добавим явно строчку, типа
nodes[4].next = 0
но ты добавляй иди а я ето уже неформально сделал
Если брат у тя складывается такое впечатление то стоит крестится.
Привожу свои действия по шагам. Увидел твой код с рекурсией, рещил что он плох совсем, потому как так делть нееффективно да и медленно.
Быстро черкнул свой код - тока чтоп дать идею, не проверяя его - каюсь ошибся
паосле поступления запроса о том что код не работает - отладил его
для лучшей иллюстрауии работы снабдил убедительными функцуиями, упростил майн до предела и оставив вывод
Все ето делал юорясь с собой на кажном шагу
ваыдал на екран.
О каких семантиче ских тонкостях использования классов ты мне говоришь. Если у меня все челены класса открытые я буду писать класс если мне будут за ето платить, сам не буду никогда потому что ето бред. Еще раз чтобы clarify picture класс со всеми открытыми челенами носит гордое название структура. Та же беда с интерфейсом.
Применение макросов в программе без постановки Технического Задания - определения что должен делать данный модуль - является также странным требованием - а почему макросы а че не константы? А че не стати переменные? Нет постановки задачи? Мы чего то домыслили за бога? Ну я не буду - мне лениво.
Мне удалось свою точку зрения развить?=)
Если нет сорри - всместо того чтобы пить пиво я какой то бред стругаю
О чем ето мы там болтали, а вспомнил
твою сентенцию (имется ввиду заявление) про обилие скобок не понял, по мне их ровно стока скока нада.
по поводу void main(void) стандарт гласит
int main() { /* ... */ }
int main(int argc, char* argv[])
ето присутсвует и в С и в С++ стандарте.
В С++ тока прсиутсвуеть
main() { /* ... */ }
В С++ мона не делать return по умолчанию вернется 0 Что означаеть усе карашо.
-------------------- эту тему закрыли-----------
Что касается остального еще раз повторюсь я написал
tagNode nodes[5]; - массив, я хочу убедиться что указатели внутри структуры (tagNode* next) будут обнулены, для меня ето важно я использую 0 как остановку любой навигации по этому массиву, и хочу быть сразу убежден что у меня все указатели равны 0. Я не помню что говорит стандар о значении указателей по умолчанию - я вынужден инициализировать их. Обзая практика - инициализация обхектов в списке иициалиазации, указателей в теле. Я просто следую за набитой рукой. Почему общая практика - для обзейктов такая контструкция быстрее. Дл яуказателей - нет шансов да и смысла использовать такую конструкцию в списке инициализации.
НЕ ВСЕ присваиваеться в цикле=)
tagNode nodes[5];
int i;
for (i = 0, nodes[4].vol = 5; i < 4; ++i) {
nodes.vol = i+1;
nodes.next = nodes + i + 1;
}
Где тут присваивается 0 для последней ноды? Ну давай добавим явно строчку, типа
nodes[4].next = 0
но ты добавляй иди а я ето уже неформально сделал
Если брат у тя складывается такое впечатление то стоит крестится.
Привожу свои действия по шагам. Увидел твой код с рекурсией, рещил что он плох совсем, потому как так делть нееффективно да и медленно.
Быстро черкнул свой код - тока чтоп дать идею, не проверяя его - каюсь ошибся
паосле поступления запроса о том что код не работает - отладил его
для лучшей иллюстрауии работы снабдил убедительными функцуиями, упростил майн до предела и оставив вывод
Все ето делал юорясь с собой на кажном шагу
ваыдал на екран.
О каких семантиче ских тонкостях использования классов ты мне говоришь. Если у меня все челены класса открытые я буду писать класс если мне будут за ето платить, сам не буду никогда потому что ето бред. Еще раз чтобы clarify picture класс со всеми открытыми челенами носит гордое название структура. Та же беда с интерфейсом.
Применение макросов в программе без постановки Технического Задания - определения что должен делать данный модуль - является также странным требованием - а почему макросы а че не константы? А че не стати переменные? Нет постановки задачи? Мы чего то домыслили за бога? Ну я не буду - мне лениво.
Мне удалось свою точку зрения развить?=)
Если нет сорри - всместо того чтобы пить пиво я какой то бред стругаю
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
Да не за что
Извиняться то. ЗАвсегда пожалста=)
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Re: Да не за что
Не понял .... пиво нести, чтолиaissp писал(а):Извиняться то. ЗАвсегда пожалста=)

- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
опять не так
--Если из его последнего романа убрать все ети розы, голые плечи и вздыханья под луной, то в центре останется один лирический герой, который за пьянку бл-ки и прогулы был выгнан из университета (с) Веня Ероффев.--
Так вот ежели выкинуть из твоей реплики выкинуть все ето то останется:
1. Извини
2. Спасибо
Соответсвенно я ответил на оба имеющих смысл предложения:
1. Не за что извиняться.
2. Завсегда пожалста.
Что касаемо пива, пожалуй сегодня пива не нада - дождит.
Так вот ежели выкинуть из твоей реплики выкинуть все ето то останется:
1. Извини
2. Спасибо
Соответсвенно я ответил на оба имеющих смысл предложения:
1. Не за что извиняться.
2. Завсегда пожалста.
Что касаемо пива, пожалуй сегодня пива не нада - дождит.
- Earl Grey
- Маньяк
- Сообщения: 2893
- Зарегистрирован: 22 фев 2005, 15:07
Re: опять не так
А что стОит пить когда дождит?aissp писал(а): Что касаемо пива, пожалуй сегодня пива не нада - дождит.
- Gatchinskiy
- Комбинатор
- Сообщения: 20952
- Зарегистрирован: 05 окт 2003, 20:44
- Откуда: St. Petersburg(Gatchina) > Vancouver
Re: опять не так
... водку и холодцом закусывать ... что и делаем ...Уникурсал Уникурсалыч писал(а):А что стОит пить когда дождит?aissp писал(а): Что касаемо пива, пожалуй сегодня пива не нада - дождит.

- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
Ну
У меня теория что под дождь хорощо идет дешевый скотч закусываю ммденсом с арахисом. Комбинацию ету подбирал давольно долго, есс-но начинал с пива под грибками, потом через сангрию и вермут перешел в более высокую лигу, пытался пить вино, срывался на конъяк, и даже был адептом портвейна. Но пришла старость и с ней мудрость, скотч и конфетки - пока есть зубы.
Такие дела.
Такие дела.
- Gatchinskiy
- Комбинатор
- Сообщения: 20952
- Зарегистрирован: 05 окт 2003, 20:44
- Откуда: St. Petersburg(Gatchina) > Vancouver
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага