Передача параметров в функции

208
24 декабря 2017, 09:40

Сам код:

// #include "stdafx.h"
#include "iostream"
using namespace std;
double MyF2(double &x)
{
    cout<<"Размер x: " <<sizeof(x)<<" Значение x="<< x <<" Значение *x="<< x<<endl;
    x+=10;
    return x;
};
int main (int argc, char* argv[])
{   
    setlocale(LC_ALL, "Russian");
int a = 2;
double b = 7;
cout<<"  a = " << a << "  Размер a: " << sizeof(a);
cout<<"  b = " << b << "  Размер b: " << sizeof(b) << endl;
cout<<"(17) Результат MyF2 : " <<MyF2(a)<<endl;
cout<<"(23) Результат MyF2 : " <<MyF2(++b)<<endl;
    return 0;
}

При компилировании вылетает ошибка. В чем ошибка ?

Answer 1

Вы передаете в функцию, принимающую ссылку на double, переменную типа int. Подчеркиваю - не значение, а ссылку!

И что будет, если в функции будет присвоено значение по этой ссылке - скажем, 8 байт double туда, где реально хранятся 4 байта int? уж точно ничего хорошего.

Потому такие несоответствия запрещены.

Answer 2

#include <iostream> вместо include "iostream"

READ ALSO
Работа с БД C++(QT)

Работа с БД C++(QT)

Здравствуйте, создаю приложение, которое работает с БДБД представляет собой данные о школе(ученики, сотрудники школы, классы, родители учеников...

257
Как заменить пробелы на символ &ldquo;$&rdquo;?

Как заменить пробелы на символ “$”?

Здравствуйте! Как заменить пробелы символом “$” с помощью функций и манипуляторов?

295
Выключение экрана WinAPI C++

Выключение экрана WinAPI C++

Только учусь winAPI, весь вечер вчера пытался написать программу, которая бы выключала экран и включала при нажатие на клавишу F2, код нижеПроблема...

283
Что быстрее в длинном цикле - макрос или inline?

Что быстрее в длинном цикле - макрос или inline?

Например, есть цикл перевода YUY2 буфера в буфер BGR (от 100 до 900+ тысяч итераций):

232