Can you help explaining these C++ practice problems I am doing? Especially #5. 1
ID: 3811184 • Letter: C
Question
Can you help explaining these C++ practice problems I am doing? Especially #5.
1- Given the function prototype void fun1(int &, double); is the following function call valid or invalid? Why or why not?
double x, y;
// initialization code of x and y //
fun1(x, y);
2- Given the function prototype void fun1(int &, double); is the following function call valid or invalid? Why or why not?
double x, y;
// initialization code of x and y //
fun1(static_cast<int>(x), 3);
3- Given the function prototype void fun1(int &, double); is the following function call valid or invalid? Why or why not?
int x, y;
// initialization code of x and y //
fun1(x, y);
4- Given the function prototype void fun1(int &, double); is the following function call valid or invalid? Why or why not?
int x, y;
double z;
// initialization code of x, y and z //
fun1(x + y, z);
5- Given the function prototype double fun2(int , double); is the following function call valid or invalid? Why or why not?
double x, y;
// initialization code of x and y //
fun2(x, fun2(x, y));
Explanation / Answer
1- Given the function prototype void fun1(int &, double); is the following function call valid or invalid? Why or why not?
double x, y;
// initialization code of x and y //
fun1(x, y);
Yes this is valid call
This function takes two parameters: integer by reference, and second is double
it returns nothing
2- Given the function prototype void fun1(int &, double); is the following function call valid or invalid? Why or why not?
double x, y;
// initialization code of x and y //
fun1(static_cast<int>(x), 3);
THis is not valid. fun1(static_cast<int>(x), 3) => we are passing int value. It takes reference variable
3- Given the function prototype void fun1(int &, double); is the following function call valid or invalid? Why or why not?
int x, y;
// initialization code of x and y //
fun1(x, y);
This is valid. We are passing integer reference and an int value
4- Given the function prototype void fun1(int &, double); is the following function call valid or invalid? Why or why not?
int x, y;
double z;
// initialization code of x, y and z //
fun1(x + y, z);
Valid. we are passing int and double
5- Given the function prototype double fun2(int , double); is the following function call valid or invalid? Why or why not?
double x, y;
// initialization code of x and y //
fun2(x, fun2(x, y));
Not Valid
fun2(x, y) => this takes two parameters: one int and onr double, but we are passing both double