Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Danilka_ Гость
|
Добавлено: Вт Апр 20 2004 14:47 Заголовок сообщения: Передача параметров функций в C++ |
|
|
ПОМОГИТЕ!!!
Такая ситуация: в основной функции есть 2-х (или более) мерный массив. Его нужно передать в обрабатывающую функцию в качастве параметра. Соответсвенно при его изменении в этой функции должен меняться и массив в основной функции...
КАК ЭТО СДЕЛАТЬ? КАК ЭТО ДОЛЖНО ВЫГЛЯДЕТЬ? (в С++ Builder) |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Вт Апр 20 2004 15:05 Заголовок сообщения: |
|
|
Читай в хелпах или в любой книжке по С/С++ раздел "передача параметров в функцию"
Можно использовать передачу по ссылке, можно через указатель.
Когда функция должна модифицировать вызываемую переменную то лучше использовать второй способ. В том смысле что он нагляднее. Запись func( &a ) сразу говорит что мы передаём адрес переменной, и она будет модифицирована. Если переменную модифицировать не нужно то лучше использовать константную ссылку. В этом случае вызов выглядит без подвохов, как и при передаче параметра по значению: func(a). Если переменная занимает в памяти несколько байт, не содержит конструктора и не должна быть модифицирована, то нет смысла передавать её как константную ссылку, лучше передать по значению. Эта идеология упрощает анализ кода и позволяет избежать некоторых ошибок. |
|
Вернуться к началу |
|
|
droopy Гость
|
Добавлено: Вт Апр 20 2004 16:25 Заголовок сообщения: |
|
|
void func( int **array )
{
array[0][0] = 1;
}
так при помощи 2мерного массива. Не забудь память выделить.
есть еще vector
#include <vector>
using namespace std;
vector< vector< int > > vec;
void func( vector< vector< int > > &vec )
{
vec[0][0] = 1;
}
main()
{
func( vec );
} |
|
Вернуться к началу |
|
|
droopy Гость
|
Добавлено: Вт Апр 20 2004 16:29 Заголовок сообщения: |
|
|
в примере с вектором не забудь его инициализтровать.
вообще почитай Страуструпа. |
|
Вернуться к началу |
|
|
|