Solved

c ++ True and False Questions

Posted on 2011-03-17
5
276 Views
Last Modified: 2012-06-21
I need to figure if these are true or false, any help would be greatly appreciated...

8.  If B is a base class of D, then D’s members cannot access the private data members of B without regard to the kind of inheritance.

9.  An overloaded operator= function must be a non-static class member.

10. One constructor of a class can call another constructor of the same class to initialize the this object

11. When overloading (), [], -> or any assignment operator, the operator overloading function must be declared as a class member.

12. A copy constructor is used to initialize an object with another object of the same class. Copy constructors are also invoked whenever a copy of an object is needed, such as in call-by-value, and when returning a value from a called function. In a copy constructor, the object being copied must be passed in by reference.

13. To overload the increment operator to allow both pre-increment and post-increment usage, each overloaded operator function must have a distinct signature so the compiler will be able to determine which version of ++ is intended.

14. Derived classes can provide their own implementations of a base class virtual function if necessary, but if they do not, the base class's implementation is used.

15. With single inheritance, a class is derived from only one base class. With multiple inheritance, a derived class inherits from multiple (possibly unrelated) base classes.

16. A derived class cannot access the private members of its base class; allowing this would violate the encapsulation of the base class. A derived class can, however, access the public and protected members of its base class.

17. An object of a derived class can be treated as an object of its corresponding public base class. However, the reverse is not true.

18. When deriving a class from a private base class, public and protected members of the base class become private members of the derived class.

19. For a derived-class object, first the base-class constructor is called, then the derived-class constructor is called (which may call member object constructors).

20. An attempt by a const member function of a class to modify an object of that class is a syntax error.
0
Comment
Question by:villmund
5 Comments
 
LVL 32

Expert Comment

by:phoffric
ID: 35159943
Tell us what you think the answer is and the reason for it.

Here is some light reading material:
    http://www.experts-exchange.com/help.jsp?hi=21

    http://www.experts-exchange.com/help.jsp?hi=23
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 35159946
It's probably more useful if you give us the answers you think are correct (and your reasoning), and then we can confirm or correct them.
0
 

Author Comment

by:villmund
ID: 35160012
This is what I have for the answers
8.  T
9.  T
10. F
11.  T
12. T
13. F
14. T
15.  T
16.  T
17. F
18. F
19. T
20. T
0
 
LVL 53

Accepted Solution

by:
Infinity08 earned 500 total points
ID: 35161111
>> 8.  T
>> 9.  T
>> 10. F
>> 11.  T
>> 12. T

All correct.

>> 13. F

The signature of an overloaded pre-increment operator is different from that of an overloade post-increment operator. The latter must have a dummy int parameter, while the former doesn't.

>> 14. T
>> 15.  T

Correct.

>> 16.  T

Assuming public inheritance, yes.

>> 17. F

This one has a slightly simplified view on things, but  the statement is correct when looked at in the right view. Public inheritance models an "is a kind of" relationship between the derived and base class. Eg. a student is a kind of person, but a person is not necessarily a student.

>> 18. F

This statement describes what private inheritance means.

>> 19. T

The statement is reasonably accurate indeed.

>> 20. T

Not necessarily. There is for example such a thing as mutable data members.
0
 
LVL 12

Expert Comment

by:trinitrotoluene
ID: 35165625
>>16. A derived class cannot access the private members of its base class; allowing this would violate the encapsulation of the base class.

you could still have a public function in your base class which provides access to the private members. The question can be interpreted in this way as well. So the better way to put it is that a derived class cannot directly access the private members of its base class.

>>20. An attempt by a const member function of a class to modify an object of that class is a syntax error.
such an attempt will be prevented by the compiler. So it is semantically incorrect and doesn't really fall under the category of a pure syntax error. Like infinity said a "mutable" member can be modified within a const member function.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Setting nameservers after res_init fails doing res_query 2 87
java continue statement 10 119
FMX TCameraComponent Problem 2 54
Problem to error 4 47
This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
This article will show, step by step, how to integrate R code into a R Sweave document
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now