类和对象
第61题
下面是关于派生类声明的开始部分,其中正确的是()。
第62题
若有以下程序,则该程序运行后的输出结果是()。
#include<iostream>
using namespace std;
class TestClass
{
public:
void who(){cout<<"TestClass"<<endl;}
};
class TestClass1:public TestClass
{
public:
void who(){cout<<"TestClass1"<<endl;}
};
int main()
{
TestClass *p;
TestClass1 obj1;
p=&obj1;
p->who();
return 0;
}
第63题
下列有关继承和派生的叙述中,正确的是()。
第64题
下面叙述错误的是()。
第65题
列程序的输出结果为2,横线处应添加语句()。
#include<iostream>
using namespace std;
class TestClass1
{
public:
______ void fun(){cout<<1;}
};
class TestClass2:public TestClass1
{
public:
void fun(){cout<<2;}
};
int main()
{
TestClass1 *p=new TestClass2;
p->fun();
delete p;
return 0;
}
第66题
要使程序执行后的输出结果为ABCD,应在横线处添加语句()。
#include<iostream>
using namespace std;
class A
{
public:A(){cout<<"A";}
};
class B:______
{
public:B(){cout<<"B";}
};
class C:virtual public A
{
public:C(){cout<<"C";}
};
class D:public B,public C
{
public:D(){cout<<"D";}
};
void main(){D obj;}
第67题
下面的描述中,正确的是()。
第68题
下列说法中错误的是()。
第69题
多继承的构造顺序可分为四步:①所有非虚基类的构造函数按照它们被继承的顺序构造;②所有虚基类的构造函数按照它们被继承的顺序构造;③所有子对象的构造函数按照它们声明的顺序构造;④派生类自己的构造函数体。这四个步骤的正确顺序是()。
第70题
设有以下定义和程序,则以下不合语法的调用语句是()。
#include<iostream.h>
class A1
{
public:
void show1()
{
cout<<"class A1"<<endl;
}
};
class A2:public A1
{
public:
void show2()
{
cout<<"class A2"<<endl;
}
};
class A3:protected A2
{
public:
void show3()
{
cout<<"class"<<endl;
}
};
void main()
{
A1 obj1;
A2 obj2;
A3 obj3;
}
第71题
下列关于派生类构造函数和析构函数的说法中,错误的是()。
第72题
有如下程序,执行这个程序的输出结果是()。
#include<iostream>
using namespace std;
class TestClass1
{
public:
TestClass1(){cout<<"TestClass1";}
~TestClass1(){cout<<"~TestClass1";}
};
class TestClass2:public TestClass1
{
TestClass1 *p;
public:
TestClass2(){cout<<"TestClass2";p=new TestClass1();}
~TestClass2(){cout<<"~TestClass2";delete p;}
};
int main()
{
TestClass2 obj;
return 0;
}
第73题
有如下类说明,在构造函数TestClass1的下列定义中,正确的是()。
class TestClass
{
int x;
public:
TestClass (int n){x=n;}
};
class TestClass1:public TestClass {
int y;
public:
TestClass1 (int a,int b);
};
第74题
声明派生类时,已知有如下定义:
class TestClass{
protected:
void fun(){}
};
class TestClass1:TestClass{};则TestClass类中的成员函数fun(),在TestClass1中的访问权限是()。
第75题
下面叙述错误的是()。
第76题
关于虚函数,以下说法正确的是()。
第77题
下列关于纯虚函数与抽象类的描述中,错误的是()。
第78题
有如下类定义,类MyDERIVED中保护的数据成员和成员函数的个数是()。
class MyBASE
{
int k;
public:
void set(int n){k=n;}
int get()const{return k;}
};
class MyDERIVED:protected MyBASE
{
protected:
int j;
public:
void set(int m,int n){MyBASE::set(m);j=n;}
int get()const{return MyBASE::get()+j;}
};
第79题
下列关于继承的描述中,错误的是()。
第80题
有如下程序,执行上面的程序将输出()。
class YY:public XX
{
public:
~YY()
{
cout<<"YY";
}
void f()const
{
cout<<k;XX::f();
}
};
int main()
{
XX &p=*new YY;
p.f();
delete &p;
return 0;
}