/10、只要是类 M继承了类N,就可以说类 M是类N的子类型。(T ) 11、 如果A类型是B类型的子类型,则 A类型必然适应于 B类型。( T ) 12、 重载运算符保持原运算符的优先级和结合性不变。 13、 构造函数说明为纯虚函数是没有意义的。 14、 抽象类是指一些没有说明对象的类。 三、填空题
1、 以下程序的执行结果是
________________ 。
#includeviostream> using namespace std; class Sample { int x; public: void setx (int i) {x=i;} int putx() {return x;} };
int main() {
Sample *p; Sample A[3]; A[0].setx(5); A[1].setx(6); A[2].setx(7); for (int j=0;j<3;j++) {
P=&A[j];
coutvvp->putx()vv ” ; }
coutvvendl; return 0; }
2、 以下程序的执行结果是 i=20
#includeviostream> using namespace std; class Sample { public: Sample() { coutvv \构造函数。\
} };
void fn (int i)
构造函数。i=10
( F )
( T ) (T )
( T )
15、 动态联编是在运行时选定调用的成员函数的。
{
static Sample c; coutvv ”= \}
int main() {
fn (10);
fn (20); return 0; }
3、 以下程序的执行结果是
#includeviostream> using namespace std; class A {
public:
int x;
void fun(int i) {x=i;}
};
int main() {
A c;
int A::*p=&A::x; c.*p=2;
void (A::*pfun)(int)=A::fun; (c.*pfun)(5);
cout<<\return 0; }
4、 以下程序的执行结果是
fun1:7
x=5 ______________ 。
fun2:15 __________________ 。 #includeviostream> using namespace std; class A
{
public:
int x; A(int i) {x=i;}
void fun1(int j) {x+=j;coutvv \funl: \vvxvvendl;} void fun2(int j)
{x+=j;coutvv \fun2: \vvxvvendl;} }; int main() {
A c1(2),c2(5);
void (A::*pfun)(int)=A::fun1; (c1.*pfun)(5); pfun=A::fun2;
(c2.*pfun)(10); return 0; }
5、 以下程序的执行结果是 _______________ 97 __________________
#includeviostream>
using namespace std; class Sample {
int x; public:
Sample() {};
void setx(int i) {x=i;} friend int fun(Sample B[|,int n) {
int m=0;
for(int i=0;i if(B[i].x>m) m=B[i].x; return m; } }; int main() { Sample A[1O]; int Arr[]={90,87,42,78,97,84,60,55,78,65}; for(int i=O;i<1O;i++) A[i].setx(Arr[i]); coutvvfun(A,1O)vvendl; return 0; } 6、 以下程序的执行结果是 _1 _______________________________ 3 ___________ 。 #includeviostream> using namespace std; class A { int a; public: void seta(int x) {a=x;} void showa() {coutvvavvendl;} }; class B { int b; public: void setb(int x) {b=x;} void showb() {coutvvbvvendl;} };B { private: int c; public: void setc(int x,int y, int z) { c=z; seta(x); setb(y); } void showc() {coutvvcvvendl;} }; int main() { C c; c.seta(1); class C:public A,private c.showa(); c.setc(1,2,3); c.showc(); return 0; } 7、以下程序的执行结果是 (1,2) 5.6 (69 #includeviostream> using namespace std; class A { public: A(int i,int j) {a=i;b=j;} void move(int x,int y) { a+=x;b+=y; } void show() { coutvv” vvavv ”\”\} private: int a,b; }; class B:private A { public: B(int i,int j,int k,int l):A(i,j) { x=k;y=l; } void show() { coutvvxvv ” \} void fun() {move(3,5);} void f1() {A::show();} private: int x,y; };