C++ 程序的输出 |第 26 组(构造函数)
先决条件 - C++ 中的构造函数
1.以下程序的输出是什么?
CPP
#include
using namespace std;
class construct
{
int a, b;
public:
construct()
{
a = 0;
b = 0;
}
};
int main()
{
construct c;
cout<< "a: "<< c.a << endl << "b: "<< c.b;
return 1;
}
CPP
#include
using namespace std;
class construct
{
public:
float area;
construct()
{
area = 0;
}
construct(int a, int b)
{
area = a * b;
}
void disp()
{
cout<< area<< endl;
}
};
int main()
{
construct o;
construct o2( 10, 20);
o.disp();
o2.disp();
return 1;
}
CPP
#include
using namespace std;
class constructor
{
int x, y;
public:
constructor(int a = 10, int b = 20 )
{
x = a;
y = b;
}
void Display()
{
cout<< x << " " << y << endl;
}
};
int main()
{
constructor objBix;
objBix.Display();
return 0;
}
CPP
#include
class constructor
{
int x;
public:
constructor(short ss)
{
cout<< "Short" << endl;
}
constructor(int xx)
{
cout<< "Int" << endl;
}
constructor(float ff)
{
cout<< "Float" << endl;
}
};
int main()
{
constructor c('B');
return 0;
}
CPP
#include
using namespace std;
class constructor
{
int a;
public:
constructor(int x)
{
a = x;
}
void display()
{
cout<< "a: "<
输出:
error
描述:类中的变量在 C++ 中默认是私有的。因此,它们不能在类之外访问。对于代码,要完美地工作,它们需要像construct() 一样声明为public,然后它将a 和b 打印为0 。
2.以下程序的输出是什么?
CPP
#include
using namespace std;
class construct
{
public:
float area;
construct()
{
area = 0;
}
construct(int a, int b)
{
area = a * b;
}
void disp()
{
cout<< area<< endl;
}
};
int main()
{
construct o;
construct o2( 10, 20);
o.disp();
o2.disp();
return 1;
}
输出:
0
200
说明: C++ 允许多个构造函数。其他构造函数必须具有不同的参数。此外,包含参数的构造函数被赋予默认值必须遵守并非所有参数都被赋予默认值的限制。这种情况只在有默认构造函数时才重要。当基于参数创建对象时,构造函数被加载。
3.哪个构造函数会被执行?
CPP
#include
using namespace std;
class constructor
{
int x, y;
public:
constructor(int a = 10, int b = 20 )
{
x = a;
y = b;
}
void Display()
{
cout<< x << " " << y << endl;
}
};
int main()
{
constructor objBix;
objBix.Display();
return 0;
}
输出:
Parameterized constructor (Output will be 10 20)
说明:当我们在类中声明任何构造函数时,编译器不会创建默认构造函数。在这种情况下会发生同样的事情,但由于参数化构造函数包含所有参数的默认值,它将被调用。但是如果你在这里声明默认构造函数,编译器会报错(模棱两可的调用),因为它无法决定调用哪个构造函数。
4.以下程序的输出是什么?
CPP
#include
class constructor
{
int x;
public:
constructor(short ss)
{
cout<< "Short" << endl;
}
constructor(int xx)
{
cout<< "Int" << endl;
}
constructor(float ff)
{
cout<< "Float" << endl;
}
};
int main()
{
constructor c('B');
return 0;
}
输出:
Int
说明:由于'B' 给出整数值,即66。因此,将执行带有整数参数的参数化构造函数。
5.以下程序的输出是什么?
CPP
输出:
a: 10
a: 10
说明:该程序演示了复制构造函数的概念。