Re: Best way to access methods of Objects and its sub-Objects
dotnetbuddha@googlemail.com writes:
I was always unsure as how to deal with cases where one has
to access methods of objects contained with in the class.
Which class is ?the class??
When objects are ?contained? in a class, these are
static fields. How to access a static field of a
class should be obvious.
Basically, if we have a complex system as a car,
A car is not a object-oriented program, although
some books suggest otherwise.
where things can be abstracted in several classes,
What does ?to abstract a thing in a class? does
suggest to you?
what is the ideal way to access one/several methods of an
object contained in the class, which inturn contain
additional classes ?
A class cannot be contained at run time.
(A class is not a run-time value.)
So, I ignore the last clause.
Then I get:
what is the ideal way to access one/several methods of an
object contained in the class
When one knows the answer for ?one? one knows
the answer for ?several?, so I get:
~what is the ideal way to access a method of an
~object contained in a class?
Methods are /invoked/, fields are accessed, thus:
~What is the ideal way to invoke a method of an
~object contained in a class?
Well, if an object o is contained in a class C,
it has to be in a static field f of C, so a
method m of o is invoked as
C::f.m()
What you actually want to ask might be:
~Where can I learn more about the design of C++
~classes and OOA/OOD?
and the answer is:
By reading (in this order and doing the exercise):
Programming -- Principles and Practice Using C++ (only if
you have not programmed before) or Accelerated C++ (if you
have programmed before), The C++ Programming Language,
Effective C++, Exceptional C++ (Parts 1 and 2), Modern C++
programming.
And also:
Design Patterns by Gamma, et. al.
Refactoring by Martin Fowler
Applying UML and Patterns, 3rd Ed. by Craig Larman
Structured Systems Analysis (DeMarco)
Patterns of Enterprise Application Architecture by Fowler
Object Oriented Software Construction by Bertrand Meyer
Object Oriented Software Engineering by Ivar Jacobson
Code Complete, 2nd Ed. by Steve McConnell
Test-Driven Development by Kent Beck
The Pragmatic Programmer by Andrew Hunt
The Mythical Man-Month by Frederick Brooks
Domain Driven Design by Eric Evans
Online:
http://www.objectmentor.com/resources/articles/ocp.pdf
http://www.cs.cmu.edu/afs/cs/project/vit/ftp/pdf/intro_softarch.pdf
http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf
http://www.laputan.org/mud/