Форум программистов, компьютерный форум CyberForum.ru

Вызов типа - C++

Восстановить пароль Регистрация
 
Mariya93
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
23.01.2014, 12:59     Вызов типа #1
Имеется объявления пипов...
C++
1
2
3
4
5
6
7
int*m4[4];
 
int(*m5)[5];
 
int**m6;
 
int(*m7)(int,float);
Подскажите,как каждый можно вызвать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 12:59     Вызов типа
Посмотрите здесь:

C++ не удаётся создать безымянный объект типа vector моего типа
C++ В массив типа double записываю целые числа (типа int), но ошибка не вылазиет!
C++ Есть объект типа T, но если вместо него подставить вызов функции, возвращающей T, код не компилится, почему?
C++ Вызов конструктора текущего типа
C++ Конструкторы, приведение типа и ошибка "Не найден оператор, принимающий правый операнд типа 'char *'"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
23.01.2014, 13:02     Вызов типа #2
По имени
Mariya93
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
23.01.2014, 14:02  [ТС]     Вызов типа #3
Помогите написать для каждого,не могу сообразить?
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.01.2014, 14:48     Вызов типа #4
что значит вызвать тип?
Extrim88
 Аватар для Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
23.01.2014, 14:51     Вызов типа #5
Цитата Сообщение от Mariya93 Посмотреть сообщение
Имеется объявления пипов...
Это не объявление типов. Это объявление объектов данных конкретных типов.
Mariya93
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
23.01.2014, 14:54  [ТС]     Вызов типа #6
да,вы правы...
вот например:
C++
1
int*m2;
можно вызвать так....
C++
1
2
m2=new int;
m2=&m1;
вот и эти примерно так нужно вызвать
Alex5
881 / 616 / 81
Регистрация: 12.04.2010
Сообщений: 1,546
23.01.2014, 14:57     Вызов типа #7
Цитата Сообщение от Mariya93 Посмотреть сообщение
Имеется объявления пипов...
Наверное Вы хотели сказать, "объявления переменных".
Цитата Сообщение от Mariya93 Посмотреть сообщение
C++
1
int(*m7)(int,float);
Переменная m7 - это указатель на функцию такого типа int func( int x, float y ).
Пример использования указателя на функцию :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int f( int a, float b )
{
    cout << "\n   this is function  f()  \n " << endl;
    cout << a << endl;
    cout << b << endl;
 
    return 0;
}
 
 
int main()
{
    int(*m7)(int,float);  // объявление указателя 
 
    m7 = & f;  // присваиваем указателю значение 
 
    m7( 11, 2.34 ); // здесь будет вызвана функция f() 
 
    // ... 
}
Можно также написать так:
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    int(*m7)(int,float); 
 
    m7 =  f;  // присваиваем указателю значение 
 
    (*m7)( 11, 2.34 ); // вызов функции f() ( на которую указывает m7 )
 
    // ... 
}
Mariya93
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
23.01.2014, 15:01  [ТС]     Вызов типа #8
спасибо,а для остальных не могли бы написать,пожайлуста?)
Alex5
881 / 616 / 81
Регистрация: 12.04.2010
Сообщений: 1,546
23.01.2014, 15:09     Вызов типа #9
Цитата Сообщение от Alex5 Посмотреть сообщение
Переменная m7 - это указатель на функцию такого типа int func( int x, float y ).
Пример использования указателя на функцию :
А вот что получится, если использовать указатель на функцию, не задав его значение. См.рис.
C++
1
2
3
4
5
6
7
8
9
10
11
/* Эта программа содержит ошибку - переменная m7 не инициализирована */
int main()
{
    int(*m7)(int,float);  // объявление указателя 
 
    // m7 = ... 
 
    m7( 11, 2.34 ); //  что здесь получится? см.рис.
 
    // ... 
}
Миниатюры
Вызов типа  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 15:11     Вызов типа
Еще ссылки по теме:

C++ Запись информации из вектора типа string в вектор типа double
Аргумент типа WCHAR* не совместим с параметром типа const char* C++
Можно ли присвоить объекту основного типа значение объекта пользовательского типа? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Extrim88
 Аватар для Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
23.01.2014, 15:11     Вызов типа #10
Mariya93, ну тогда лучше сказать не "можно вызвать так", а можно использовать в программе таким образом, поскольку термин "вызвать" лучше применять по отношению к функциям.

По задаче вашей:
Цитата Сообщение от Mariya93 Посмотреть сообщение
int*m4[4];
Это массив из 4 указателей на int, int*m4[4] = {&a, &b, &c, &d}; (где a, b, c, d - объявленные ранее переменные типа int).

Цитата Сообщение от Mariya93 Посмотреть сообщение
int(*m5)[5];
- это указатель на массив, состоящий из 5 пяти переменных типа int.
Например, int arr[5] = {1, 2, 3, 5, 5}; m5 = arr;

Цитата Сообщение от Mariya93 Посмотреть сообщение
int**m6;
Это указатель на указатель на int вот такая сложность...
int* p = &x; m6 = &x;

Цитата Сообщение от Mariya93 Посмотреть сообщение
int(*m7)(int,float);
Это указатель на функция, принимающую два аргумента типа int и float и возвращающую переменную типа int.

Например, int myFunction(int x, float y); //прототип некоторой функции
m7 = myFunction;

Добавлено через 1 минуту
Цитата Сообщение от Extrim88 Посмотреть сообщение
int* p = &x; m6 = &x;
ошибся, надо int* p = &x; m6 = &p;
Yandex
Объявления
23.01.2014, 15:11     Вызов типа
Ответ Создать тему
Опции темы

Текущее время: 00:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru