is defined once but may be executed, or invoked,
any number of times. You may already be familiar with the concept of a
function under a name such as subroutine or
parameterized: a function definition may include a
list of identifiers, known as parameters, that work
as local variables for the body of the function. Function invocations
provide values, or arguments, for the functions
parameters. Functions often use their argument values to compute a
return value that becomes the value of the
function-invocation expression. In addition to the arguments, each
invocation has another valuethe invocation
contextthat is the value of the this keyword.
If a function is assigned to the property of an object, it is
known as a method of that object. When a function
is invoked on or through an
object, that object is the invocation context or this value for the function. Functions
designed to initialize a newly created object are called
constructors. Constructors were described in Creating Objects and will be covered again in Chapter9.
Having gone through a general overview of COM in the last chapter, you now will get intimate with it. First, lets get one thing straight. COM is nothing new because it builds purely on top of proven successful software technologies, including object-oriented and distributed computing technologies. These technologies thoroughly separate interface from implementation. Everyone who has any exposure to encapsulation and software layering can more or less relate to COM.
The interface definitions and C++ code that you see in this chapter can be automated by Visual C++ and the ATL wizards with a few mouse clicks. Even so, its important for you to see whats going on in the code and not just rely on clicking a few buttons. You cant understand what choices to make from the wizards until you know how to create a COM object from scratch. Moreover, performance is heavily affected by the choices that you make. Consider the information in this chapter (and in Chapter4 and Chapter5), the internals of the wizard-generated code that is presented in Chapter6, and onwards. In short, youll be empowered with the knowledge gained from Chapter3 through Chapter6.
American Cancer Society. 2002. Prevention and early detection. Common questions about diet and cancer. http://www2.cancer.org (retrieved January 6, 2003; site now discontinued).
Antonawich, F. J., S. M. Fiore, and J. N. Davis. 1998. The effects of a lipoic acid/palladium complex on hippocampal progenitor cells. Abstract #857.10, 24:2161. Society for Neuroscience Meeting, Los Angeles, CA.
Bohm, D. On the Intuitive Understanding of Nonlocality as Implied by Quantum Theory. Foundation of Physics, vol. 5, 1975, pp. 96, 102.
Dossey, L. Space, Time, and Medicine. New York: Random House, 1982, p. 146.
Foundation for the Advancement in Cancer Research. June 21, 2003. White Paper. Palladium Lipoic Complexes: An Overview of Function and Clinical Applications to Cancer Treatment.
Garnett, Merrill. Synthetic DNA reductase. Journal of Bioinorganic Chemistry 1995; 59(23): 231.
. November 26, 1993. Palladium complexes and methods for using same in the treatment of tumors or psoriasis. U.S. Patent 5,463,093, Oct. 31, 1995. U.S. Patent 5,463,093, filed Nov. 26, 1993, issued Oct. 31, 1995.
Someone will call Something will fall And smash
on the floor Without reading the text Know what comes next Seen it
before And its painful Things must change We must rearrange them Or
well have to estrange them All that Im saying The games not worth
playing Over and over again
Depeche Mode, "The Sun and the Rainfall"
Users who come to Mathematica for its superior mathematical
capabilities are pleasantly surprised to find strong abilities in
programming areas outside of mathematics proper. This is certainly true
in the area of textual and string processing. Mathematicas rich library
of functions for string and structured text manipulation rivals Java,
Perl, or any other modern language you can tie a string around.
The sections in this introduction provide information on some of
the basic tools of strings and string manipulation.
Mathematica uses Unicode internally, but
externally (e.g., when saving a notebook) it uses ASCII codes,
encoding non-ASCII characters in a special form.
To build a successful web application, you often
need to know a lot about the environment in which it is running. You
may need to find out about the server that is executing your servlets
or the specifics of the client that is sending requests. And no
matter what kind of environment the application is running in, you
most certainly need information about the requests that the
application is handling.
A number of methods provide servlets access to this information. For
the most part, each method returns one specific result. Compared this
to the way environment variables are used to pass a
CGI program its information, the servlet
approach has several advantages:
Stronger type checking. Servlets get
more help from the compiler in catching errors. A CGI program uses
one function to retrieve its environment variables. Many errors
cannot be found until they cause runtime problems. Lets look
at how a CGI program and a servlet find the port on which its
server is running.