LINUX.ORG.RU

Я не понимаю C++

 , , ,


2

2

Не вброса или холивара ради. Это крик души (:
Пытаюсь изучить плюсы. Но за какой учебник бы не взялся, какую статью бы не открыл - теряюсь. Сначала всё хорошо. Но доходит дело до указателей, указателей на указатели, ссылок, etc. в эти моменты и начинается ж*па. Всё смешивается в кашу из звёзд, амперсандов, сисек и прочего.
Гугляндексы говорят примерно такое: «Учи пока не поймёшь!!! Если не знаешь указатели, значит ты не знаешь C/C++!!!» И всякое в таком роде. Что ясности как-то не вносит.
Но сегодня на работе закаляя очередные заготовки я подумал, что неплохо бы отойти от стандартного:

int a = 15;
int *p = &a;
cout << p;
И попробовать сделать что-то более реальное(применимо ли это слово?). Тогда и по ходу дела разберусь с этими плюшками в плюсах. Но вот беда в том, что я не могу ничего придумать.
Поэтому я хочу обратиться к ЛОР'у с просьбой о историях успеха и каких-либо конкретных примерах(задачах). Они бы по возможности были просты(я не профи кодер, а повар вообще).
Может подкинете идею, чего бы написать попробовать. Опять же в целях обучения/понимания. Что бы весь ЛОР потом над говнокодом поржал (:

★★★★

Вы металлург?:

Но сегодня на работе закаляя очередные заготовки

Или таки повар?:

я не профи кодер, а повар вообще

(сорри за флуд, просто интересно)

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Моя первая специальность повар-кондитер. А сейчас я работаю термистом(да, металлург).

yacuken ★★★★
() автор топика
Ответ на: комментарий от hobbit

все строки загнать в char*

Они еще при этом могут с умным видом на оверхэд ссылаться :) Ну или как Царь - на «портянки».

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

В одномерном случае это обычный массив. В многомерном гораздо выше локальность дааных.

AIv ★★★★★
()

я понял эти ссылки когда глянул в ассемблерный код

res2500
()

Я не понимаю C++

Забей! Не нужно тратить свою молодость на это говно. Лучше освоить Си (для интеграции со сторонними библиотеками или для скорострeльного кода) и какой нибудь вменяемый высокоуровневый язык: OCaml, Erlang, Common Lisp или на худой конец недолисп — Python. В итоге перечисленных комбинаций хватит для решения 99.9% real-world задач.

gensym ★★
()

Если разберёшься с этим примером, поинтеры будут тебе больше не страшны:

#include <stdio.h>
#include <stdlib.h>

struct node {
        int value;
        struct node *next;
};

int
main()
{
        struct node *n, **np;
        int i;

        n = NULL;
        np = &n;

        for (i = 0; i < 10; i++) {
                *np = calloc(1, sizeof(struct node));
                (*np)->value = i;
                np = &(*np)->next;
        }

        while (n) {
                printf("%d\n", n->value);
                n = n->next;
        }

        return 0;
}
beastie ★★★★★
()
Ответ на: комментарий от beastie

Эм... Односвязной список?

struct node {
        int value;
        struct node *next;
};
Читал советы выше. Но можно спросить его практическое значение?

yacuken ★★★★
() автор топика
Ответ на: комментарий от slackwarrior

Они еще при этом могут с умным видом на оверхэд ссылаться :) Ну или как Царь - на «портянки».

Что за «Царь»? И почему и его тут (на ЛОРе) начали форсить?

Deleted
()
Ответ на: комментарий от yacuken

Дело не в односвязном списке (хотя это тоже очень важная и полезная вещь), а в использовании поинтеров и поинтеров на поинтеры, где как я понял из твоего начального сообщения у тебя маленькие проблемки. В этом простом примере всё это есть. Сама идея такого хитрого использования спёрта из plan9. А ты спрашиваешь про практическое применение. ;)

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от Deleted

Полоругли o2n3e или суперхаккиллера. Он сам себя зафорсил. Теперь в девелопменте традиционный вброс «Все кто выше и ниже - Цари».

slackwarrior ★★★★★
()
Ответ на: комментарий от yacuken

Ну так односвязный список же. Стандартная структура данных. Имеем ряд ячеек, в каждой из которых хранится значение и адрес «следующей» ячейки.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.