c++
C++是一门强大的面向对象编程语言,由C语言发展而来,”++“意为更进一步发展,C++充分吸收了C语言的优点,同时汲取了面向对象的编程思想,其后拥有STL库的强大支撑,具有封装、继承、多态三大特性,常以高效能著称。
-
声明派生类时,已知有如下定义:class TestClass{ protected: void fun(){} }; class TestClass1:TestClass{};则TestClass类中的成员函数fun(),在TestClass1中的访问权限是()。
-
有如下类说明,在构造函数TestClass1的下列定义中,正确的是()。class TestClass { int x; public: TestClass (int n){x=n;} }; class TestClass1:public TestClass { int y; public: TestClass1 (int a,int b); };
-
有如下程序,执行这个程序的输出结果是()。#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; }
-
下列关于派生类构造函数和析构函数的说法中,错误的是()。
-
设有以下定义和程序,则以下不合语法的调用语句是()。#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; }
-
多继承的构造顺序可分为四步:①所有非虚基类的构造函数按照它们被继承的顺序构造;②所有虚基类的构造函数按照它们被继承的顺序构造;③所有子对象的构造函数按照它们声明的顺序构造;④派生类自己的构造函数体。这四个步骤的正确顺序是()。
-
下列说法中错误的是()。
-
下面的描述中,正确的是()。
-
要使程序执行后的输出结果为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;}
-
列程序的输出结果为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; }
-
下面叙述错误的是()。
-
下列有关继承和派生的叙述中,正确的是()。
-
若有以下程序,则该程序运行后的输出结果是()。#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; }
-
下面是关于派生类声明的开始部分,其中正确的是()。
-
有如下程序,执行这个程序,屏幕上将显示输出()。#include<iostream> using namespace std; class TestClass { protected: TestClass(){cout<<"x";} TestClass(char c){cout<<c;} }; class TestClass1:public TestClass { public: TestClass1(char c){cout<<c;} }; int main() { TestClass1 d1('y'); return 0; }
-
若有如下程序,程序执行后的输出结果是()。#include<iostream> 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() { cout<<a<<","<<b<<endl; } private: int a,b; }; class B:private A { public: B(int i,int j):A(i,j){} void fun() { move(3,5); } void f1() { A::show(); } }; int main() { B d(3,4); d.fun(); d.f1(); return 0; }
-
有如下程序,执行这个程序的输出结果是()。#include<iostream> using namespace std; class A { public: A(){cout<<"A";} ~A(){cout<<"~A";} }; class B:public A { A*p; public: B(){cout<<"B";p=new A;} ~B(){cout<<"~B";delete p;} }; int main() { B obj; return 0; }
-
对虚函数的调用()。
-
假定TestClass为一个类,则该类的拷贝构造函数的声明语句为()。
-
下列关于抽象类的表述中正确的是()。