Solved

c ++ True and False Questions

Posted on 2011-03-17
5
279 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

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Choosing the right language for new project 8 63
wordmultiple challenge 12 131
Non-recursive backtracking, using a stack 1 124
DCT of  2D array using fftw in c++ 9 38
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
When we want to run, execute or repeat a statement multiple times, a loop is necessary. This article covers the two types of loops in Python: the while loop and the for loop.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.

815 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

12 Experts available now in Live!

Get 1:1 Help Now