单选题1. class Test {  2. private Demo d;  3. void start() {  4. d = new Demo();  5. this.takeDemo(d); 6. }  7.   8. void takeDemo(Demo demo) {  9. demo = null;  10. demo = new Demo(); 11. }  12. }  When is the Demo object, created on line 3, eligible for ga

题目
单选题
1. class Test {  2. private Demo d;  3. void start() {  4. d = new Demo();  5. this.takeDemo(d); 6. }  7.   8. void takeDemo(Demo demo) {  9. demo = null;  10. demo = new Demo(); 11. }  12. }  When is the Demo object, created on line 3, eligible for garbage collection?()
A

 After line 5.

B

 After line 9.

C

 After the start() method completes.

D

 When the takeDemo() method completes.

E

 When the instance running this code is made eligible for garbage collection.

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

第1题:

1.classTest{2.privateDemod;3.voidstart(){4.d=newDemo();5.this.takeDemo(d);6.}7.8.voidtakeDemo(Demodemo){9.demo=null;10.demo=newDemo();11.}12.}WhenistheDemoobject,createdonline3,eligibleforgarbagecollection?()

A.Afterline5.

B.Afterline9.

C.Afterthestart()methodcompletes.

D.WhenthetakeDemo()methodcompletes.

E.Whentheinstancerunningthiscodeismadeeligibleforgarbagecollection.


参考答案:E

第2题:

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

有如下程序: #include<iostream.h> using namespace std; class Demo { public: Demo(){ cout<<"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
解析:此题考查的是虚函数的应用。C++语言中,在创建一个对象时,会自动调用类的构造函数,所以语句“Demo a,d;”将调用函数Demo()两次。当一个对象作为实参传递给函数时,为初始化形参,要调用复制构造函数:在函数返回一个对象时调用复制构造函数。所以语句“d=userCode(a);”调用复制构造函数3次。

第3题:

有如下程序: 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

第4题:

下列程序的输出结果是 class Demo { void test( ) { Systeme.out.pnnt("NO");} void test(int i) { System.out.print(a);} void test(int a,int b) { System.out.print(a+b);} } class Test { public static void main(String args[ ] ) { Demo de=new Demo( ); de.test( ); de.test(5); de.test(6,8); } }

A.No 5 6 8

B.5 6 8 No

C.No 5 14

D.8 6 No 5


正确答案:C
解析:本题考查的是方法重载的概念及应用,本题中应顺调查用test(),test(5)和test(6,8)方法,所以答案为选项C)。

第5题:

有如下程序: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次。

第6题:

有如下程序: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次。

第7题:

有关类Demo,哪句描述是正确的( )?public class Demo extends Base{private int count;public Demo(){ System.out.println("A Demo object has been created");} protected void addOne() {count++; }}

A.当创建一个Demo类的实例对象时,count的值为0。

B.当创建一个Demo类的实例对象时,count的值是不确定的。

C.超类对象中可以包含改变count 值的方法。

D.Demo的子类对象可以访问count。


正确答案:A

第8题:

有如下程序: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的值并未改变。

第9题:

有下列程序: include using namespace std; class Demo { public: Demo(){cout<<"d

有下列程序: #include<iostream.h> using namespace std; class Demo { public: Demo(){ cout<<"default constmctor\n";} Demo(const Demo &x){ cont<<"copy constructor\n";} }; Demo userCode(Demo b){Demo c(b);return c;} int

A.1和1

B.1和2

C.2和3

D.2和4


正确答案:C
解析: 此题考查的是虚函数的应用。C++语言中,在创建一个对象时,会自动调用类的构造函数,所以语句“Demoa,d;”将调用函数Demo()两次。当一个对象作为实参传递给函数时,为初始化形参,要调用复制构造函数;在函数返回一个对象时调用复制构造函数。所以语句“d=userCode(a);”调用复制构造函数3次。

第10题:

下列程序的输出结果是 ( ) class Derao { void test() { Systeme.out.print("NO");} void test (int i) {System.out.print(a);} void test(int a,int b) {System.out.print(a+b);} } class Test { public static void main(String args[]) { Demo de=new Demo(); de.test(); de.test5.; de.test(6,8); } }

A.No568

B.568No

C.No514

D.86No5


正确答案:C

更多相关问题