C++程序的输出|组5
难度等级:菜鸟
预测以下 C++ 程序的输出。
问题 1
C
#include
using namespace std;
class Test {
int value;
public:
Test(int v);
};
Test::Test(int v) {
value = v;
}
int main() {
Test t[100];
return 0;
}
C
#include
using namespace std;
class Test {
int value;
public:
Test(int v = 0);
};
Test::Test(int v) {
value = v;
}
int main() {
Test t[100];
return 0;
}
C
#include
using namespace std;
int &fun() {
static int a = 10;
return a;
}
int main() {
int &y = fun();
y = y +30;
cout<
C
#include
using namespace std;
class Test
{
public:
Test();
};
Test::Test() {
cout<<"Constructor Called \n";
}
int main()
{
cout<<"Start \n";
Test t1();
cout<<"End \n";
return 0;
}
输出:
Compiler error
类 Test 有一个用户定义的构造函数“Test(int v)”,它需要一个参数。它没有没有任何参数的构造函数,因为如果用户定义了一个构造函数,编译器不会创建默认构造函数(请参阅this)。以下修改后的程序可以正常工作,没有任何错误。
C
#include
using namespace std;
class Test {
int value;
public:
Test(int v = 0);
};
Test::Test(int v) {
value = v;
}
int main() {
Test t[100];
return 0;
}
问题2
C
#include
using namespace std;
int &fun() {
static int a = 10;
return a;
}
int main() {
int &y = fun();
y = y +30;
cout<
输出:
40
该程序运行良好,因为 'a' 是静态的。由于 'a' 是静态的,它的内存位置即使在 fun() 返回之后仍然有效。因此可以返回对静态变量的引用。
问题 3
C
#include
using namespace std;
class Test
{
public:
Test();
};
Test::Test() {
cout<<"Constructor Called \n";
}
int main()
{
cout<<"Start \n";
Test t1();
cout<<"End \n";
return 0;
}
输出:
Start
End