SCJP程序员认证考试

多选题Which three statements are true?()AThe default constructor initializes method variables.BThe default constructor has the same access as its class.CThe default constructor invoked the no-arg constructor of the superclass.DIf a class lacks a no-arg const

题目
多选题
Which three statements are true?()
A

The default constructor initializes method variables.

B

The default constructor has the same access as its class.

C

The default constructor invoked the no-arg constructor of the superclass.

D

If a class lacks a no-arg constructor, the compiler always creates a default constructor.

E

The compiler creates a default constructor only when there are no other constructors for the class.

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下程序:includeUsing namespace std;Class Demo{public:Demo(){cout<<“default

有如下程序: #include<iostream.h> Using namespace std; Class Demo { public: Demo(){ cout<<“default constructor\n”;} Demo(const Demo &x){ cont<<“copy constructor\n”;} }; Demo usercode(Demob){Demo c(b);return c;} int main() {

A.1和1

B.1和2

C.2和3

D.2和4


正确答案:D
解析: 本题考查的是引用调用,因为函数swap引用调用参数a,所以在swap函数中a的变化会改变主函数中a的值,即a自加1,但b的值并未改变。

第2题:

关于constructor,下列描述正确的是()。

A.class中的constructor不可省略

B.constructor在一个对象被new时执行

C.一个class只能定义一个constructor

D.constructor必须与class同名,但方法不能与class同名


参考答案:B

第3题:

下列说法正确的有()

A.class中的constructor不可省略

B.constructor必须与class同名,但方法不能与class同名

C.constructor在一个对象被new时执行

D.一个class只能定义一个constructor


正确答案:C

第4题:

Constructor with parameter const char* sourceString passed.


正确答案:
 

第5题:

以下程序的输出结果是_____。 include class object {private:int val; public:objec

以下程序的输出结果是_____。

include<iostream.h>

class object

{ private:

int val;

public:

object( ) ;

object(int i) ;

~object( ) ;};

object: :object( )

{ val=0;

cout < < "Default constructor for object" < < endl;}

object: :object(int i)

{ val=i;

cout < < "Constructor for object" < < val < < endl;}

object: :~object( )

{ cout < < "Destructor for object" < < val < < endl;}

class container{ private:

object one;

object two;

int data;

public:

container( ) ;

container(int i,int j,int k) ;

~container( ) ;};

container: :container( )

{ data=0;

cout < < "Default constructor for container" < < endl;}

container: :container(int i,int j,int k) :two(i) ,one(j)

{ data=k;

cout < < "Constructor for container" < < endl;}

container: :~container( )

{ cout < < "Destructor for container" < < endl;}

void main( )

{ container anObj(5,6,10) ;}


正确答案:Constructor for object6 Constructor for object5 Constructor for container Destructor for container Destructor for object5 Destructor for object6
Constructor for object6 Constructor for object5 Constructor for container Destructor for container Destructor for object5 Destructor for object6 解析:C++语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本题中的调用就是这样成对出现的。

第6题:

有如下程序:includeusing namespace std;class test{private: int a;public: test(

有如下程序:#include<iostream>using namespace std;class test{private: int a;public: test(){cout<<"constructor"<<endl;} test(int a){cout<<a<<endl;} test(const test&_test) { a=_test.a; cout<<"copy constructor"<<en+dl; } ~test(){cout<<"destructor"<<endl;}};int main(){ test A(3); rerun 0;}运行时输出的结果是

A.3

B.constructor destructor

C.copy constructor destructor

D.3 destructor


正确答案:D
解析:本题考查的知识点是:构造函数和析构函数。一个类可以有多个构造函数,但只能有一个析构函数。每一个对象在被创建的时候,都会隐含调用众多构造函数中的一个,而在被销毁的时候,又会隐含调用唯一的那个析构函数。因此,解此类题目只要找准创建时调用的是哪个构造函数,和对象何时被销毁即可。本题只有主函数中创建了一个对象A,并使用了构造参数3,因此会隐含调用test(int a)这个构造函数,输出一个3。接下来主函数结束,对象A被销毁,所以又隐含调用~test()析构函数,输出一个destructor。故本题应该选择D。

第7题:

有如下程序:includeusing namespaee std;class Demo{public:Demo( ){cout<<"default

有如下程序: #include<iostream> using namespaee std; class Demo{ public: Demo( ){cout<<"default constructor\n";} Demo(const Demo &x){cout<<"copy constructor\n";} }; Derno userCore(DemoB) {Demo c(B) ;return c;} int main( ){ Demo a,d; cout<<"calling userCode( )\n"; d=userCode(A) ; return 0; } 执行上面程序的过程中,构造函数Demo( )和Demo(const Demo &x)被调用的次数分别为

A.1和1

B.1和2

C.2和3

D.2和4


正确答案:C
解析:无参构造函数调用和复制构造函数调用的Demo a,d;调用2次无参构造函数Demo( ),在Demo userCore(Demo B) {Demo c(B) ;return c;}函数中,Demo b调用一次复制构造函数,Demo c(B) 调用一次复制构造函数,在函数返回值时还要调用一次复制构造函数,故Demo(const Demo &x)的调用次数为3次。

第8题:

有如下程序: include using namespace std; class Demo

有如下程序: #include<iostream> using namespace std; class Demo { public: Demo(){ cout<<"default constructor\n";} Demo(const Demo & x){ cout<<"copy constructor\n":} }; Demo userCode(Demo b){DemoC(b);return c;} int main() { Demo a,d; cout<<"calling userCode()\n"; d=userCode(a); return 0; } 执行上面程序的过程中,构造函数Demo()和Demo(const Demo &x)被调用的次数分别是

A.1和1

B.1和2

C.2和3

D.2和4


正确答案:C

第9题:

有如下程序:includeusing namespace std;classDemo{public: Demo(){cont<<"default

有如下程序: #include<iostream.h> using namespace std; class Demo { public: Demo(){ cont<<"default constructor\n";} Demo(const Demo &x){ cont<<"copy constructor\n";} }; Demo userCode(Demo b){Demo c(b);return c;} int main() { Demo a,d; cout<<"calling userCode()\n"; d=userCode(a); return 0; } 执行上面程序的过程中,构造函数Demo()和Demo(const Demo &x)被调用的次数分别是

A.1和1

B.1和2

C.2和3

D.2和4


正确答案:C
解析:本题考核构造函数的应用,有一定的深度。函数Demo()为构造函数,而Demo(constDemo&x)为复制构造函数。C++在创建一个对象时,会自动调用类的构造函数,所以语句“Demoa,d;”将调用函数Demo()2次。当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数;在函数返回一个对象时调用拷贝构造函数。由此可知语句“d=userCode(a);”调用复制构造函数3次。

第10题:

C# provides, by default a parameterless constructor. If I write a constructor that takes a string as a parameter, but want to keep the parameterless constructor. How many constructors should I write?

(C#提供默认构造函数(不带参数),如果我写了一个带有一个string类型参数的构造函数,但是又想保留不带参数的构造函数,那么我需要写多少个构造函数)


正确答案:
 

更多相关问题