我对C ++很了解,所以如果有人能帮我解决这些TorF问题,那就太棒了。
判断对错:使用C ++,只有在将值传递给函数输入时才会使用类的复制构造函数。
判断对错:以下C ++函数madeA()
是一个有效的函数实现。
ClassA{
public:
int x;
char *y;
};
void madeA(const A &t_a){
t_a.x = 1;
t_a.y = 0;
}
判断对错:以下C ++代码段是等效的。
void cmax(int a, int b, int *max){
if(a>b) *ax = a;
*max = b;
}
using namespace std;
void main(){
int *max = new int;
cmax(20, 5, max);
cout<< *ax << endl;
}
下一个代码:
void cmax(int a, int b, int &max){
if(a>b) max = a;
max = b;
}
void(){
int max;
cmax(20, 5, ax);
std::cout <<max<<std::endl;
}
答案 0 :(得分:1)
第一:错误。
无论何时需要副本,都可以调用复制构造函数
简单示例:按值返回
第二:错误。
您正在修改对const
参数的引用的内容。它不应该编译,即使你使用一些指针hackery它也会导致未定义的行为。
第三名:错误。
第一个有内存泄漏第二个没有。
第二个代码片段甚至不会编译。