当前位置:首页 > 《VC++程序设计基础》1,2,3
void main() { Q q(); //L … }
则以下说法正确的是〖B〗。
A)L行说明了一个对象q B)L行说明了一个函数原型 C)L行说明了一个对象数组 D)以上说法都不正确 50.以下程序输出的两个字母分别为〖c〗和〖d〗。 #include
public:virtual void f() { cout<<'a'<<'b'< class Y:public X{ public: void f() { cout<<'c'<<'d'< void main() { Y y; X *xp=&y; xp->f(); } 51.以下程序的输出结果分别是〖20〗和〖30〗。 #include Base(int a){ x=a; } }; class A:public Base{ public:A(int a):Base(a){ } int GetX(){ return x; } }; class B:public Base{ public:B(int a):Base(a){ } int GetX(){ return x; } }; class C:public B,public A{ public:C(int a):A(a+10),B(a+20){ } }; void main() { C c(10); cout< 8 52.以下程序的运行结果为〖50,0〗 〖退出主函数!〗 〖调用析构函数!〗。 #include Q(int a=0,int b=0){ x=a;y=b; } void P(){ cout< ~Q() { cout<<\调用析构函数!\\n\ }; void main() { Q q(50); q.P(); cout<<\退出主函数!\\n\ } 53.以下程序的运行结果为〖B〗 #include { x=a; cout<<\ A( ) { cout << \ … }; class B:public A{ int y; public: B(int a,int b) { y=a; cout<<\ … }; void main() { B b1(2,3);} A)call A(int) B)call A( ) C)call B(int,int) call B(int,int) call B(int,int) 54.以下程序的运行结果为〖B〗 #include 9 D)call A(int) int x; public: A(int a=0) { x=a;cout< class B{ int y; public: B(int a=0) { y=a;cout< class C:public A,public B{ int z; public: C(int a=0,int b=0):B(a+20),A(a) { z=b;cout< void main() { C c(100,200); } A)120,100,200 B)100,120,200 C)200,100,120 D)200,120,100 55.以下程序的运行结果为〖B〗 #include A(int a=0) {x=a;cout< class B{ int y; public: B(int a=0) {y=a;cout< class C: public B,virtual public A{ int z; public: C(int a=0,int b=0):B(a+20),A(a) {z=b; cout< void main() { C c(100,200); } A)120,100,200 B)100,120,200 C)200,100,120 D)200,120,100 三、判断下列各种描述是否正确,对者划√,错者划×。 ×(1)一个类中可以只有公有成员,也可以只有私有成员,也可以公有、私有成员都 10 有。 ×(2)用class定义的类中,默认的访问权限是公有的。 √(3)指向对象的指针的成员表示与对象的成员表示所使用的运算符不同。 ×(4)构造函数是用来初始化所定义的对象,如果一个类中没有定义任何构造函数, 则该类的对象便无法初始化。 √(5)定义一个对象时系统只存储其数据成员,而不存储对象的成员函数,成员函数 是同类对象所共享的。 ×(6)析构函数是一个函数体为空的成员函数。 ×(7)构造函数和析构函数都可以重载,因为它们都是成员函数。 √(8)如果一个成员函数只存取一个类的静态数据成员,可将该成员函数说明静态成 员函数。 ×(9)在类的构造函数中可对其静态数据成员进行初始化。 √(10)友元类中的所有成员函数可以对该类中的私有成员进行存取操作。 √(11)指向对象的指针和对象都可以作为函数参数,但是使用前者比使用后者好些。 ×(12)对象引用作函数参数不如使用对象指针方便。 √(13)对象数组的元素必须是同一个类的对象。 √(14)一维对象指针数组的每一个元素应该是某个类的对象的地址。 √(15)运算符new可以创建变量或对象,也可以创建数组。 √(16)const类型说明符可以用来说明各种不同类型的常量,也可以说明const成员函数。 ×(17)对象成员的初始化可以不在该类的构造函数中。 √(18)转换函数是类的成员函数,它是用来进行强制类型转换的。 √(19)C++语言中,允许单继承,也允许多继承。 ×(20)派生类不能再派生新的类。 ×(21)在公有继承中,派生类可以访问基类中的私有成员。 √(22)在公有继承中,派生类的对象不可以访问基类中的保护成员。 √(23)在私有继承中,派生类的对象不可以访问基类中的公有成员。 √(24)在保护继承中,派生类可以访问基类中的保护成员。 ×(25)基类的析构函数可以被派生类继承。 ×(26)在多继承情况下,派生类构造函数对基类构造函数的执行顺序取决于它的成员初始化表中说明的基类顺序。 √(27)虚基类是用来解决多继承中公共基类在派生类中只产生一个拷贝的问题。 √(28)函数参数个数和类型都相同,只是返回值类型不同,这不是重载函数 ×(29)重载函数不能带有缺省参数,因为可能出现二义性 √(30)个别运算符不能重载,运算符重载是通过对它重新定义函数来实现的 √(31)运算符重载有两种形式:成员函数和友元函数 √(32)运算符重载后,不改变原来的优先级和结合性 √(33)虚函数是一种用virtual说明的成员函数 ×(34)抽象类中只能有一个纯虚函数 ×(35)构造函数和析构函数都不能说明为虚函数 11
共分享92篇相关文档