一个c++程序改错的面试题
第一次看到这个题目,觉得很简单,可仔细一看,发现自己不会做,感觉自己太菜了!题目的要求是改正程序中的错误:
#include <iostream>
using namespace std;
class Test{
public:
int *p;
Test(int value){
p=new int(value);
}
~Test(){
delete p;
}
void PrintValue()
{
cout<<"The value is"<<*p<<endl;
}
};
void Func(Test t)
{
cout<<"In the Func"<<endl;
}
int main(){
Test t1=33;
Func(t1);
t1.PrintValue();
return 0;
}
using namespace std;
class Test{
public:
int *p;
Test(int value){
p=new int(value);
}
~Test(){
delete p;
}
void PrintValue()
{
cout<<"The value is"<<*p<<endl;
}
};
void Func(Test t)
{
cout<<"In the Func"<<endl;
}
int main(){
Test t1=33;
Func(t1);
t1.PrintValue();
return 0;
}
我的问题是:
1,程序有几个错误,该如何改正;
2,为什么Test t1=33;没有错误;
3,这个程序运行结果为
In the Func
The value is-572662307
如果去掉Func(t1);
运行结果为:
The value is33
看到这个题目,觉得自己C++太差了,九月份就该找工作了,该如何是好?~~~~~~~~~~