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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
cite
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9
#1

невозможно преобразовать параметр 1 из "int" в "int *&" - C++

26.07.2013, 11:18. Просмотров 3361. Ответов 38
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
 
void Func1(int *n)
{
    cout << *n << " = " << *n << endl;
}
 
void Func2(int &n)
{
    cout << &n << " = " << n << endl;
}
 
void Func3(int *&n)
{
    cout << &n << " = " << n << endl;
}
 
 
int main()
{
    int n;
 
    Func1(&n);
    Func2(n);
    Func3(n);  // Func3: невозможно преобразовать параметр 1 из "int" в "int *&"
    
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2013, 11:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос невозможно преобразовать параметр 1 из "int" в "int *&" (C++):

Исправить ошибку C2664: fcvt: невозможно преобразовать параметр из "int" в "int *" - C++
ПИшу програму перевод дробового числа с указанием количесв цифр после точки , с инт в чар !!!!Но выбивает ошибку !!! ...

Что делать с ошибкой: C2440: инициализация: невозможно преобразовать "int **" в "int *" - C++
Задание, сделать класс динамического массива шаблонным. Вот, вроде бы сделал, но наткнулся на ошибку, что не так? Код: ...

Ошибка при сборке многофайлового проекта: "невозможно преобразовать "int" в "const golf" - C++
Сделал многофайловую программу программу, вот она: //golf.h #include &lt;iostream&gt; #ifndef golg_h_ #define golf_h_ const int Len =...

Как исправить ошибку невозможно преобразовать аргумент 1 из "unsigned int" в "unsigned int []"? - C++
Ребят, срочно прошу вас помочь.. Есть ошибка (невозможно преобразовать аргумент 1 из &quot;unsigned int&quot; в &quot;unsigned int &quot;) как ее...

Error C2440: <function-style-cast>: невозможно преобразовать "unsigned int" в "std::bitset<_Bits>" - C++
С++ Не работает программа! Задание было такое: напишите программу invert(p,x,n), возвращающую значение х с инвертированными n-битами,...

error C2664: Display: невозможно преобразовать параметр 1 из 'int [5]' в 'int" - C++
Добрый вечер! Прошу помочь, так как сам только начал изучать СПП (поэтому отнеситесь с пониманием)). #include &lt;stdio.h&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,026
26.07.2013, 11:24 #2
Видимо Func3(&n);
0
cite
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9
26.07.2013, 11:32  [ТС] #3
PHP
1
Func3(&n);  // Func3: невозможно преобразовать параметр 1 из "int *" в "int *&"
0
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
26.07.2013, 11:53 #4
cite, испытываешь передачу переменной в функцию?

Добавлено через 3 минуты
14 строчка, так нельзя делать, передаешь или ссылку или указатель, но ни как не одновременно одно и тоже.

Добавлено через 5 минут
т.е.

void Func3(int *n)

или

void Func3(int &n)

но НЕ

void Func3(int *&n)
0
cite
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9
26.07.2013, 11:56  [ТС] #5
Цитата Сообщение от VLK Посмотреть сообщение
cite, испытываешь передачу переменной в функцию?
функции изучаю и немного тренируюсь)

видел программу и там функция принимает ссылку на указатель
только не понимаю как это
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
26.07.2013, 12:01 #6
cсылку на указатель передавать можно, это необходимо что бы внутри можно было изменить этот входной указатель, только скорее всего надо писать вот так
C++
1
&*а
0
nonedark2008
908 / 647 / 134
Регистрация: 28.07.2012
Сообщений: 1,760
26.07.2013, 12:01 #7
Цитата Сообщение от VLK Посмотреть сообщение
14 строчка, так нельзя делать, передаешь или ссылку или указатель, но ни как не одновременно одно и тоже.
Чем тебе не понравилась ссылка на указатель?
___
Для Func3 нужен объект ссылку на который будем передавать.
C++
1
2
int *pn = &n;
Func3(pn);
1
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
26.07.2013, 12:02 #8
На, держи в подарок, только вчера себе сделал, что то вроде памятки:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream> 
 
#define rus setlocale(LC_ALL,"")
#define pause system("pause");
 
 
void fun(int rhs)
{
/* Переданное значение является копией var имеет другой адрес */
std::cout << "rhs: " << rhs << " &rhs: " << &rhs << "\n\n";
}
 
void link(int &rhs)
{
/* Переданное значение является ссылкой на var, любые изменения rhs изменят и var
rhs и var имеют один и тот же адрес в ОП */
std::cout << "rhs: " << rhs << " &rhs: " << &rhs << "\n\n";
}
 
void ptr(int *rhs)
{
/* Переданная из функции main ссылка превращается в указатель,
в указатели хранится адрес на var, любое изменение *rhs изменит и var */
std::cout << "rhs: " << rhs << " &rhs: " << &rhs << " *rhs: " << *rhs << "\n\n";
}
 
 
 
int main()
{
rus;
 
int var = 1;
 
std::cout << "В функции main, значение и адрес: \n";
std::cout << "var: " << var << " &var: " << &var << "\n\n";
 
std::cout << "Передаем в функцию: fun(int rhs) - fun(var)\n"; 
fun(var);
/* передача осуществляется только в таком виде, т.е. 
перед var не получится поставить * или & */
 
std::cout << "Передаем в функцию по ссылке: link(int &rhs) - link(var)\n";
link(var);
/* передача осуществляется только в таком виде, т.е. 
перед var не получится поставить * или & */
 
std::cout << "Передаем в функцию по ссылке: ptr(int *rhs) - ptr(&var)\n";
ptr(&var);
/* передача осуществляется только в таком виде, т.е. 
перед var должен обязательно стоять &, во всех других случаях - ошибка */
 
pause;
return 0;
}
1
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
26.07.2013, 12:05 #9
пример
C++
1
2
3
4
5
6
7
8
9
10
void CreateArray(int &*p, int n)
{
p = new int[n];
}
 
int main()
{
int * a;
CreateArray(a, 5);
}
Добавлено через 1 минуту
и это кстати
C++
1
void Func3(int *&n)
указатель на ссылку а не ссылка на указатель
0
nonedark2008
908 / 647 / 134
Регистрация: 28.07.2012
Сообщений: 1,760
26.07.2013, 12:15 #10
Цитата Сообщение от aLarman Посмотреть сообщение
указатель на ссылку а не ссылка на указатель
Нет, именно ссылка на указатель. Пруф
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
26.07.2013, 12:18 #11
aLarman, это как раз ссылка на указатель. Указателя на ссылку небывает.
0
nonedark2008
908 / 647 / 134
Регистрация: 28.07.2012
Сообщений: 1,760
26.07.2013, 12:18 #12
А указатель на ссылку - вообще недопустимый тип данных.
0
aLarman
26.07.2013, 12:22
  #13

Не по теме:

что то я теряю сноровку хД это void Func3(int *&n) ссылка на указатель

0
Croessmah
Эксперт CЭксперт С++
13209 / 7480 / 841
Регистрация: 27.09.2012
Сообщений: 18,389
Записей в блоге: 3
Завершенные тесты: 1
26.07.2013, 12:24 #14
aLarman,
C++
1
2
3
4
int & * ppp;
//( int & ) * ppp получается указатель на тип int&, то есть на ссылку
int * & ppp;
//( int * ) & ppp получается ссылка на тип int*, то есть на указатель
1
cite
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9
26.07.2013, 12:32  [ТС] #15
спасибо сейчас повнимательнее почитаю что вы написали и постараюсь все это понять.
ссылки и указатели немного знаю, а вот ссылка на указатель это уже сложная для меня тема
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2013, 12:32
Привет! Вот еще темы с ответами:

Невозможно преобразовать "unsigned int" в "output::book_origin" - C++
Помогите как исправить данную проблему Серьезность Код Описание Проект Файл Строка Ошибка C2440 =: невозможно преобразовать &quot;unsigned...

Ошибка: "невозможно преобразовать 'int' в 'int [5]'" - C++
Ребят помогите не могу понять что за ошибка Пишет тип ошибка error C2440: инициализация: невозможно преобразовать 'int' в 'int ' ...

Где ошибка невозможно преобразовать указатель "this" из "const pers" в "pers &" при выводе объектов через cout - C++
Добрый день! Переписал код из книг Лафоре, создание мультимножества из собственных объектов- справочник телефонный, с именем и фамилией. ...

error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 2 из "long" в "LPCTSTR" - C++
при компиляции выдаёт ошибку указанную в теме, код: void Clab_12_2Dlg::OnClickedAri() { // TODO: добавьте свой код обработчика...


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

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

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