473,503 Members | 2,029 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Simple Question

13 New Member
I'm reviewing for my mid term which I will be taking this evening. On the practice exam, the following question is given:
Given the following, which line is illegal, assuming that class Watch extends class Clock?
Clock A = new Clock();
Watch B = new Watch();
A=B;
B=A;

On the answer key, he states that B=A; is the illegal statement because a Clock is not necessarily a Watch...but that feels wrong. I feel that in this, A=B; would be the illegal statement. But I also understand that maybe I don't fully understand how an assignment operator would work in this case. Could someone please explain this to me?
Mar 3 '09 #1
2 1161
r035198x
13,262 MVP
Maybe you could tell us why you feel that A =B is wrong. Think memory locations. A memory location that holds a Clock can hold a Watch because a watch IS-A Clock. That is what the inheritance is-A relationship is all about.

Now suppose we create another Clock, say QuartzTimer. Our QuartzTimer would extend Clock because we said that it IS another Clock.
Now a memory location that can hold a Watch cannot hold a QuartzTimer This is because a QuartzTimer IS NOT a Watch. Since a QuartzTimer is Clock, we have shown that a memory location that holds a Watch does not hold all Clocks.
A and B are pointers to memory locations to Clock and Watch objects.
Mar 4 '09 #2
JosAH
11,448 Recognized Expert MVP
@first2drown
Your variable B can point to any clock you can easily carry around: a watch (at your wrist maybe). You most certainly can't make it point to a huge clock; you need a variable A for that; so concluding: you can't say B=A because that could accidentally make your B point to such a huge beast. (see the attachment for a typical "not a watch" ;-)

kind regards,

Jos
Attached Images
File Type: jpg clock.jpg (6.3 KB, 102 views)
Mar 4 '09 #3

Sign in to post your reply or Sign up for a free account.

Similar topics

3
3659
by: Patchwork | last post by:
Hi Everyone, Please take a look at the following (simple and fun) program: //////////////////////////////////////////////////////////////////////////// ///////////// // Monster Munch, example...
1
3412
by: Proteus | last post by:
Any help appreciated on a small perl project I need to write for educator/teaching purposes. I have not programmed perl for some time, need to get up to speed, maybe some kind souls hrere will help...
2
5011
by: Raskolnikow | last post by:
Hi! I have a very simple problem with itoa() or the localtime(...). Sorry, if it is too simple, I don't have a proper example. Please have a look at the comments. struct tm *systime; time_t...
3
2147
by: Peter | last post by:
Hello Thanks for reviewing my question. I would like to know how can I programmatically select a node Thanks in Advanc Peter
7
2265
by: abcd | last post by:
I am trying to set up client machine and investigatging which .net components are missing to run aspx page. I have a simple aspx page which just has "hello world" printed.... When I request...
4
118780
by: dba_222 | last post by:
Dear Experts, Ok, I hate to ask such a seemingly dumb question, but I've already spent far too much time on this. More that I would care to admit. In Sql server, how do I simply change a...
14
2959
by: Giancarlo Berenz | last post by:
Hi: Recently i write this code: class Simple { private: int value; public: int GiveMeARandom(void);
30
3472
by: galiorenye | last post by:
Hi, Given this code: A** ppA = new A*; A *pA = NULL; for(int i = 0; i < 10; ++i) { pA = ppA; //do something with pA
10
2105
by: Phillip Taylor | last post by:
Hi guys, I'm looking to develop a simple web service in VB.NET but I'm having some trivial issues. In Visual Studio I create a web services project and change the asmx.vb file to this: Imports...
17
5788
by: Chris M. Thomasson | last post by:
I use the following technique in all of my C++ projects; here is the example code with error checking omitted for brevity: _________________________________________________________________ /*...
0
7204
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7282
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
6998
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
7464
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
5586
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
5018
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
3171
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
3162
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
741
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.