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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mariya93
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
#1

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

23.01.2014, 12:59. Просмотров 263. Ответов 9
Метки нет (Все метки)

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

Вызов конструктора текущего типа - C++
Как сделать? В шарпе можно так class MyClass { public int A,B; MyClass(int a, int b) { A = a; B =...

Есть объект типа T, но если вместо него подставить вызов функции, возвращающей T, код не компилится, почему? - C++
Есть объект типа vector<int>, но если вместо него подставить вызов функции, возвращающей vector<int>, код не компилится (template мутит...

Возврат объекта шаблонного типа от типа Type из специализации шаблона метода от того же типа - C++
Доброго времени суток, пишу класс содержащий несколько std::set от разных типов, нужно сделать метод возвращающий указатель на нужное...

Можно ли присвоить объекту основного типа значение объекта пользовательского типа? - C++
Правильно ли я понимаю, что SomeClass obj; int x = obj; или SomeClass obj; int x = 5 + obj;

Не удаётся создать безымянный объект типа vector моего типа - C++
Собсно #include <vector> using namespace std; //Вот мой австорский тип struct kletka { int i, j; kletka(int x, int...

Аргумент типа WCHAR* не совместим с параметром типа const char* - C++
Как исправить косяк? VS12 ругаетсЯ #include <windows.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
23.01.2014, 13:02 #2
По имени
0
Mariya93
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
23.01.2014, 14:02  [ТС] #3
Помогите написать для каждого,не могу сообразить?
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.01.2014, 14:48 #4
что значит вызвать тип?
0
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
23.01.2014, 14:51 #5
Цитата Сообщение от Mariya93 Посмотреть сообщение
Имеется объявления пипов...
Это не объявление типов. Это объявление объектов данных конкретных типов.
0
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;
вот и эти примерно так нужно вызвать
0
Alex5
1052 / 715 / 105
Регистрация: 12.04.2010
Сообщений: 1,818
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 )
 
    // ... 
}
1
Mariya93
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 9
23.01.2014, 15:01  [ТС] #8
спасибо,а для остальных не могли бы написать,пожайлуста?)
0
Alex5
1052 / 715 / 105
Регистрация: 12.04.2010
Сообщений: 1,818
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 ); //  что здесь получится? см.рис.
 
    // ... 
}
0
Миниатюры
Вызов типа  
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;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 15:11
Привет! Вот еще темы с ответами:

Запись информации из вектора типа string в вектор типа double - C++
Как записать только числа , которые хранятся в векторе типа стринг, в вектор типа дабл, в векторе типа стринг есть как буквы так и числа ,...

Записать адрес переменной произвольного типа в переменную типа int - C++
Здравствуйте, есть структура __packed struct myStruct{ uint32 HisCh; uint32 sNo; uint16 tNo; uint32 reserv; };

Вызов sprintf для типа не соответствующего формату - C++
Какова реакция sprintf на передачу в нее значения с типом не соответствующим указанному в формате (UB не предлагать :) )? К примеру есть...

Читать строку типа string из файла, разбить ее на массив слов типа char - C++
Нужно сделать так что бы строчка вида &quot;&lt;слово1&gt;:&lt;слово2&gt;:&lt;слово3&gt;:&lt;слово4&gt;&quot; , считывалась и каждое слово заносилось в свою переменную....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.01.2014, 15:11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru