Разделение задачи на несколько функций - PullRequest
0 голосов
/ 16 сентября 2011

Я ищу что-то, что позволяет мне делать что-то вроде функции в функции. Вот пример, чтобы сделать это более очевидным:

class A{
 private: 
 int n;
 int c;
 public:
 void foo();
}

Однако foo - это функция, которая должна изменить c, но для этого нужно n. foo несколько сложно, поэтому я хочу разбить его на различные подфункции. Поскольку foo нужно n, это не просто выполнимо с помощью функции друга (без передачи n (в моей реальной задаче есть тонны переменных)

Ответы [ 3 ]

2 голосов
/ 16 сентября 2011

Просто поместите все эти подфункции в один класс и сделайте их приватными?

1 голос
/ 16 сентября 2011
class A
{
    int n;
    int c;
    void foo_thing_1();
    void foo_thing_2();
public:
    void foo() { foo_thing_1(); foo_thing_2(); }
};
0 голосов
/ 16 сентября 2011

Как уже указывалось другими ответами, простых приватных функций должно быть достаточно - если только вам не требуется доступ к внутренним переменным исходной функции - что в c ++ 11 невозможно. В грядущем c ++ 0x вы, возможно, захотите взглянуть на лямбда-функции - хотя я уверен, что это не то, для чего они предназначены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...