summaryrefslogtreecommitdiff
path: root/reference/CPLUSPLUS/CONCEPT
diff options
context:
space:
mode:
Diffstat (limited to 'reference/CPLUSPLUS/CONCEPT')
-rw-r--r--reference/CPLUSPLUS/CONCEPT/Makefile.am5
-rw-r--r--reference/CPLUSPLUS/CONCEPT/Makefile.in410
-rw-r--r--reference/CPLUSPLUS/CONCEPT/Master.html60
-rw-r--r--reference/CPLUSPLUS/CONCEPT/cast.html89
-rw-r--r--reference/CPLUSPLUS/CONCEPT/constructor.html78
-rw-r--r--reference/CPLUSPLUS/CONCEPT/funcoverload.html153
-rw-r--r--reference/CPLUSPLUS/CONCEPT/fundefault.html115
-rw-r--r--reference/CPLUSPLUS/CONCEPT/inheritance.html264
-rw-r--r--reference/CPLUSPLUS/CONCEPT/local_var.html144
-rw-r--r--reference/CPLUSPLUS/CONCEPT/reference_variable.html167
-rw-r--r--reference/CPLUSPLUS/CONCEPT/scope.html100
11 files changed, 1585 insertions, 0 deletions
diff --git a/reference/CPLUSPLUS/CONCEPT/Makefile.am b/reference/CPLUSPLUS/CONCEPT/Makefile.am
new file mode 100644
index 0000000..5baa6fe
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/Makefile.am
@@ -0,0 +1,5 @@
+EXTRA_DIST = $(wildcard *.html) $(wildcard *.gif)
+docs_DATA = $(EXTRA_DIST)
+
+docsdir = $(kde_htmldir)/en/kdevelop/$(subdir)
+
diff --git a/reference/CPLUSPLUS/CONCEPT/Makefile.in b/reference/CPLUSPLUS/CONCEPT/Makefile.in
new file mode 100644
index 0000000..6ec8bd7
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/Makefile.in
@@ -0,0 +1,410 @@
+# KDE tags expanded automatically by am_edit - $Revision: 1.2 $
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+AMTAR = @AMTAR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AS = @AS@
+AUTODIRS = @AUTODIRS@
+AWK = @AWK@
+CC = @CC@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DPMSINC = @DPMSINC@
+DPMSLIB = @DPMSLIB@
+EXEEXT = @EXEEXT@
+GCJ = @GCJ@
+GCJFLAGS = @GCJFLAGS@
+GLINC = @GLINC@
+GLLIB = @GLLIB@
+GMSGFMT = @GMSGFMT@
+IDL = @IDL@
+IDL_DEPENDENCIES = @IDL_DEPENDENCIES@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVAC = @JAVAC@
+JAVAH = @JAVAH@
+JVMLIBS = @JVMLIBS@
+KDECONFIG = @KDECONFIG@
+KDE_CXXFLAGS = @KDE_CXXFLAGS@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBGEN = @LIBGEN@
+LIBJPEG = @LIBJPEG@
+LIBMICO = @LIBMICO@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBPYTHON = @LIBPYTHON@
+LIBQIMGIO = @LIBQIMGIO@
+LIBRESOLV = @LIBRESOLV@
+LIBSHADOW = @LIBSHADOW@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTIFF = @LIBTIFF@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBXINERAMA = @LIBXINERAMA@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KFORMULA = @LIB_KFORMULA@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMGIO = @LIB_KIMGIO@
+LIB_KIO = @LIB_KIO@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KWRITE = @LIB_KWRITE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LN_S = @LN_S@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MICO_INCLUDES = @MICO_INCLUDES@
+MICO_LDFLAGS = @MICO_LDFLAGS@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+NOREPO = @NOREPO@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PAMLIBS = @PAMLIBS@
+PASSWDLIBS = @PASSWDLIBS@
+PYTHONINC = @PYTHONINC@
+PYTHONLIB = @PYTHONLIB@
+PYTHONMODDIR = @PYTHONMODDIR@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+REPO = @REPO@
+SETUIDFLAGS = @SETUIDFLAGS@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XPMINC = @XPMINC@
+XPMLIB = @XPMLIB@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__include = @am__include@
+am__quote = @am__quote@
+idldir = @idldir@
+install_sh = @install_sh@
+jni_includes = @jni_includes@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+micodir = @micodir@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+
+EXTRA_DIST = $(wildcard *.html) $(wildcard *.gif)
+docs_DATA = $(EXTRA_DIST)
+
+docsdir = $(kde_htmldir)/en/kdevelop/$(subdir)
+subdir = reference/CPLUSPLUS/CONCEPT
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DATA = $(docs_DATA)
+
+DIST_COMMON = Makefile.am Makefile.in
+#>- all: all-am
+#>+ 1
+all: docs-am all-am
+
+.SUFFIXES:
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+#>- cd $(top_srcdir) && \
+#>- $(AUTOMAKE) --gnu reference/CPLUSPLUS/CONCEPT/Makefile
+#>+ 3
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu reference/CPLUSPLUS/CONCEPT/Makefile
+ cd $(top_srcdir) && perl admin/am_edit reference/CPLUSPLUS/CONCEPT/Makefile.in
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
+install-docsDATA: $(docs_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(docsdir)
+ @list='$(docs_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(docsdir)/$$f"; \
+ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(docsdir)/$$f; \
+ done
+
+uninstall-docsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(docs_DATA)'; for p in $$list; do \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " rm -f $(DESTDIR)$(docsdir)/$$f"; \
+ rm -f $(DESTDIR)$(docsdir)/$$f; \
+ done
+tags: TAGS
+TAGS:
+
+
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 4
+KDE_DIST=constructor.html inheritance.html cast.html scope.html funcoverload.html Master.html local_var.html reference_variable.html fundefault.html
+
+DISTFILES= $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+
+
+top_distdir = ../../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ $(mkinstalldirs) "$(distdir)/$$dir"; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(docsdir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-docsDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-docsDATA uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am info info-am install install-am install-data \
+ install-data-am install-docsDATA install-exec install-exec-am \
+ install-info install-info-am install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool uninstall uninstall-am uninstall-docsDATA \
+ uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+#>+ 2
+docs-am:
+
+#>+ 6
+force-reedit:
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu reference/CPLUSPLUS/CONCEPT/Makefile
+ cd $(top_srcdir) && perl admin/am_edit reference/CPLUSPLUS/CONCEPT/Makefile.in
+
+
+#>+ 2
+final:
+ $(MAKE) all-am
+#>+ 2
+final-install:
+ $(MAKE) install-am
+#>+ 2
+no-final:
+ $(MAKE) all-am
+#>+ 2
+no-final-install:
+ $(MAKE) install-am
+#>+ 3
+cvs-clean:
+ $(MAKE) -f $(top_srcdir)/admin/Makefile.common cvs-clean
+
+#>+ 3
+kde-rpo-clean:
+ -rm -f *.rpo
diff --git a/reference/CPLUSPLUS/CONCEPT/Master.html b/reference/CPLUSPLUS/CONCEPT/Master.html
new file mode 100644
index 0000000..5eca2c7
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/Master.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<title>Title here</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>Title here.</h1></center>
+<hr>
+<p>
+
+<hr>
+<h2>Examples:</h2>
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../EXAMPLES/const1.cc">Example program.</a>
+<p>
+
+<hr>
+<h2>See Also:</h2>
+
+</font>
+<hr>
+<font color=black>
+<h2>C References</h2>
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/CONCEPT/data_types.html">data types</a>.
+
+</font>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+<script language="JavaScript">
+<!-- //
+document.write(document.lastModified);
+// -->
+</script>
+</address><p>
+</font>
+</body>
+</html>
diff --git a/reference/CPLUSPLUS/CONCEPT/cast.html b/reference/CPLUSPLUS/CONCEPT/cast.html
new file mode 100644
index 0000000..cc2df6e
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/cast.html
@@ -0,0 +1,89 @@
+<html>
+<head>
+<title>C++ casting</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>C++ casting.</h1></center>
+<hr>
+<p>
+
+C++ has added a new feature to
+<A HREF="../../C/CONCEPT/cast.html">cast</a>
+that allows you to cast variables by using a slightly
+more familuar syntax. Have a look at the example below.
+
+<p>
+<center>
+<table border=1 width="80%" bgcolor="ivory">
+<tr>
+<td>
+<pre>
+
+ main()
+ {
+ int var1;
+ float var2;
+
+ var2 = float(var1);
+ }
+</pre>
+</td>
+</tr>
+</table>
+</center>
+<p>
+The example shows that casting can now look like a function call.
+<p>
+<hr>
+<h2>Examples:</h2>
+
+<font color=brown>
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../../CPLUSPLUS/EXAMPLES/cast.cc">C++ Example program.</a>
+</font>
+
+<hr>
+<h2>See Also:</h2>
+
+</font>
+<hr>
+<font color=black>
+<h2>C References</h2>
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/CONCEPT/cast.html">C casting</a>.
+
+</font>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+<script language="JavaScript">
+<!-- //
+document.write(document.lastModified);
+// -->
+</script>
+</address><p>
+</font>
+</body>
+</html>
diff --git a/reference/CPLUSPLUS/CONCEPT/constructor.html b/reference/CPLUSPLUS/CONCEPT/constructor.html
new file mode 100644
index 0000000..29b3cc4
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/constructor.html
@@ -0,0 +1,78 @@
+<html>
+<head>
+<title>Constructors and Destructors.</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>Constructors and Destructors.</h1></center>
+<hr>
+<a name="default">
+<h2>Constructor</h2>
+
+The <b>constructor</b> is executed when an object is created.
+Its purpose is to initalise variables with in an object
+before they can be used.
+
+
+<ul>
+<li>If you do not provide a constructor for a class, the compiler
+ will create a default constructor for you.
+
+<li>If the object has global scope, the constructor is executed
+ before main()
+</ul>
+
+<a name="copy">
+<h2>Copy Constructor</h2>
+
+<a name="assignment">
+<h2>Assignment Constructor</h2>
+
+<a name="destructor">
+<h2>Destructor</h2>
+<p>
+
+<hr>
+<h2>See Also:</h2>
+
+</font>
+<hr>
+<font color=black>
+<h2>C References</h2>
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/CONCEPT/data_types.html">data types</a>.
+
+</font>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+<script language="JavaScript">
+<!-- //
+document.write(document.lastModified);
+// -->
+</script>
+</address><p>
+</font>
+</body>
+</html>
diff --git a/reference/CPLUSPLUS/CONCEPT/funcoverload.html b/reference/CPLUSPLUS/CONCEPT/funcoverload.html
new file mode 100644
index 0000000..a245e32
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/funcoverload.html
@@ -0,0 +1,153 @@
+<html>
+<head>
+<title>Function Overloading.</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>Function Overloading.</h1></center>
+<hr>
+<p>
+Overloading is a technique that allows you to give a several
+functions with the same name but different parameter lists.
+<p>
+Consider the following program.
+<p>
+<center>
+<table border=1 width="80%" bgcolor="ivory">
+<tr>
+<td>
+<pre>
+
+ #include &lt;iostream.h&gt;
+
+ void Add(int Left, int Right);
+
+ main ()
+ {
+ Add(5, 9); // Integer Add.
+ Add(3.2, 7.1); // Floating point Add.
+ }
+
+ // Integer version of Add.
+
+ void Add(int Left, int Right)
+ {
+ cout << Left << " + " << Right << " = " << Left+Right << endl;
+ }
+</pre>
+</td>
+</tr>
+</table>
+</center>
+<p>
+The program contains the <b>Add</b> function that adds integers.
+But the main calls it twice, once passing integers and the second
+time passing floating point numbers. The program will compile and run
+but you will get incorrect results because the floats will be
+<a href=../../C/CONCEPT/cast.html> cast</a> to integers.
+<p>
+The second
+program offers a solution by <b>overloading</b> the <b>Add</b> function.
+
+<p>
+<center>
+<table border=1 width="80%" bgcolor="ivory">
+<tr>
+<td>
+<pre>
+
+ #include &lt;iostream.h&gt;
+
+ void Add(int Left, int Right);
+ <b>void Add(double Left, double Right);</b>
+
+ main ()
+ {
+ Add(5, 9); // Integer Add.
+ Add(3.2, 7.1); // Floating point Add.
+ }
+
+ // Integer version of Add.
+
+ void Add(int Left, int Right)
+ {
+ cout << Left << " + " << Right << " = " << Left+Right << endl;
+ }
+ <b>
+ // float version of Add.
+
+ void Add(double Left, double Right)
+ {
+ cout << Left << " + " << Right << " = " << Left+Right << endl;
+ }
+</b>
+</pre>
+</td>
+</tr>
+</table>
+</center>
+
+The compiler can now look at the call list and match it with
+a function with the correct parameter list and the floating
+point addition is performed correctly.
+
+<p>
+
+Please note that the returned argument is not used when matching
+overloaded functions.
+
+
+<hr>
+<h2>Examples:</h2>
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../EXAMPLES/overload.cc">Example program.</a>
+<p>
+
+<hr>
+<h2>See Also:</h2>
+
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="fundefault.html">Default Parameter Values.</a>.
+
+
+</font>
+<hr>
+<font color=black>
+<h2>C References</h2>
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/SYNTAX/functions.html">Function Basics</a>.
+
+</font>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+<script language="JavaScript">
+<!-- //
+document.write(document.lastModified);
+// -->
+</script>
+</address><p>
+</font>
+</body>
+</html>
diff --git a/reference/CPLUSPLUS/CONCEPT/fundefault.html b/reference/CPLUSPLUS/CONCEPT/fundefault.html
new file mode 100644
index 0000000..80cd0aa
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/fundefault.html
@@ -0,0 +1,115 @@
+<html>
+<head>
+<title>Default Parameters.</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>Default Parameters.</h1></center>
+<hr>
+<p>
+Within C you could not provide default values for function
+parameters. Well, C++ has come to your rescue.
+<p>
+
+<center>
+<table border="1" width="80%" bgcolor="ivory">
+<tr>
+<td>
+<pre>
+
+ #include &lt;iostream.h&gt;
+
+ void Func( int one, <b>int two=2, int three=3</b>);
+
+ main ()
+ {
+ Func(10, 20, 30);
+ Func<b>(10, 20); // Let the last parm default</b>
+ Func<b>(10); // Just provide the required parm.</b>
+ }
+
+
+ void Func( int one, int two, int three)
+ {
+ cout << "One = " << one << endl;
+ cout << "Two = " << two << endl;
+ cout << "Three = " << three << endl << endl;
+ }
+</pre>
+</td>
+</tr>
+</table>
+</center>
+
+<p>
+From this example, you can see that the prototype/function declaration
+gives default values for the second and third parameters. It is now
+down to the programmer calling the function to decide how many
+s/he wants to provide.
+<p>
+There are some basic rules that should be applied when using
+default parameter values.
+<ul>
+<li>When a default is provided, all remaining parameters must be
+ given defaults. There can not be any holes.
+<li>Default values must be of the correct type.
+<li>Defaults can be placed on the function prototype or the function
+ definition. They can also be placed in both locations at the
+ same time. I have been told its good practice to place them
+ in the prototype only.
+</ul>
+<p>
+<hr>
+<h2>Examples:</h2>
+<!--
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../EXAMPLES/xxxx.cc">Example program.</a>
+<p>
+-->
+
+<hr>
+<h2>See Also:</h2>
+
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="funcoverload.html">Function Name Overloading</a>.
+</font>
+<hr>
+<font color=black>
+<h2>C References</h2>
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/SYNTAX/functions.html">Function basics</a>.
+
+</font>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+<script language="JavaScript">
+<!-- //
+document.write(document.lastModified);
+// -->
+</script>
+</address><p>
+</font>
+</body>
+</html>
diff --git a/reference/CPLUSPLUS/CONCEPT/inheritance.html b/reference/CPLUSPLUS/CONCEPT/inheritance.html
new file mode 100644
index 0000000..0c8822c
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/inheritance.html
@@ -0,0 +1,264 @@
+<html>
+<head>
+<title>Inheritance</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>Inheritance.</h1></center>
+<hr>
+<p>
+Inheritance enables classes to use the properties of other classes and
+add to those properties.
+<p>
+The thing to remember about object programming is that it attempts to
+create a software model as close to the real world as possible. Inheritance
+forms an important role to meet this need. Take the following example.
+<p>
+A fabric can have a colour and size and it is also used to make clothes
+as well as tents. Now looking at this from the other angle tents are made
+from fabric and poles but clothes are made from fabric and buttons.
+So, Tents and clothes have something in common, <blink>fabric!</blink> If we described
+tents and clothes in C++, we can seperate fabric into a seperate class
+that the Tent and Clothes classes can inherit.
+<p>
+<center>
+<table border="1" bgcolor=ivory width=80%>
+<tr align=center>
+<td>
+<pre>
+
+ -----------
+ | Fabric |
+ -----------
+ A A
+ | |
+ --- ---
+ | |
+ --------- -----------
+| Tent | | Clothes |
+ --------- -----------
+
+
+</pre>
+</tr>
+</td>
+</table>
+</center>
+<p>
+Now for some buzz words:
+<ol>
+<li>Fabric is a <b>base class</b>
+<li>Tent and Clothes are <b>derived classes</b>
+</ol>
+This is what the code looks like:
+<p>
+<center>
+<table border="1" bgcolor=ivory width=50%>
+<tr>
+<td>
+<pre>
+
+// ... The <b>base</b> class 'Fabric'
+// ... is no different to normal.
+</pre>
+</td></tr>
+<tr><td>
+<pre>
+
+ class Fabric
+ {
+ public:
+
+ Fabric() {};
+ ~Fabric() {};
+
+ SetSize(int x, int y)
+ {
+ Length = x;
+ Width = y;
+ };
+
+ SetColour(char *C)
+ {
+ strcpy(Colour, C);
+ }
+
+ private:
+ int Length;
+ int Width;
+ char Colour[20];
+ };
+
+</pre>
+</tr>
+</td>
+</table>
+</center>
+<p>
+
+<center>
+<table bgcolor=ivory width=80% border="1">
+<tr>
+<td>
+<pre>
+
+// ... The <b>derived</b> class 'Tent'
+// ... names 'Fabric' as a base class.
+</pre>
+</td>
+<td>
+<pre>
+
+// ... The <b>derived</b> class 'Clothes' also
+// ... names 'Fabric' as a base class.
+</pre>
+</td>
+</tr>
+<tr><td>
+<pre>
+
+ class Tent <font color=red>: public Fabric</font>
+ {
+ public:
+
+ Tent() {};
+ ~Tent() {};
+
+ SetNumOfPoles(int P)
+ {
+ Poles = P;
+ };
+
+ private:
+ int Poles;
+ };
+
+</pre>
+</td>
+<td>
+<pre>
+
+ class Clothes <font color=red>: public Fabric</font>
+ {
+ public:
+
+ Clothes() {};
+ ~Clothes() {};
+
+ SetNumOfButtons(int B)
+ {
+ Buttons = B;
+ };
+
+ private:
+ int Buttons;
+ };
+
+</pre>
+</tr>
+</td>
+</table>
+</center>
+<p>
+
+What we now have are three classes with the following public methods.
+
+<ul>
+<li>Fabric
+<ol>
+<li>SetSize
+<li>SetColour
+</ol>
+<li>Tents
+<ol>
+<li>SetSize
+<li>SetColour
+<li>SetNumOfPoles
+</ol>
+<li>Clothes
+<ol>
+<li>SetSize
+<li>SetColour
+<li>SetNumOfButtons
+</ol>
+</ul>
+
+
+<h2>Using the classes</h2>
+
+So we have three classes, they are used in the same way as before but
+with one extra feature.
+<p>
+Consider this piece of code.
+
+
+<center>
+<table border="1" bgcolor=ivory width=50%>
+<tr>
+<td>
+<pre>
+ void Init(Fabric &Material);
+
+ main()
+ {
+ Tent Frame;
+ Clothes Jacket;
+
+ Init(Frame);
+ Init(Jacket);
+ }
+
+ void Init(Fabric &Material)
+ {
+ Material.SetColour("Red");
+ Material.SetSize (10, 20);
+ }
+
+</pre>
+</tr>
+</td>
+</table>
+</center>
+<p>
+
+The function 'Init' expects an object of type 'Fabric' but we
+are passing objects of type 'Tents' and 'Clothes', this is OK as
+'Tents' and 'Clothes' are derived from Fabric.
+
+<p>
+<hr>
+<h2>Examples:</h2>
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../EXAMPLES/inherit.cc">The final program.</a>
+<p>
+
+<hr>
+<h2>See Also:</h2>
+
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+29-Dec-97</address><p>
+</font>
+</body>
+</html>
diff --git a/reference/CPLUSPLUS/CONCEPT/local_var.html b/reference/CPLUSPLUS/CONCEPT/local_var.html
new file mode 100644
index 0000000..f6cb994
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/local_var.html
@@ -0,0 +1,144 @@
+<html>
+<head>
+<title>C++ Local Variables.</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>C++ Local Variables.</h1></center>
+<hr>
+<p>
+
+There is not much difference between
+<a href=../../C/SYNTAX/glo_int_vars.html> C local variables</a> but there
+is one important feature that should be noted.
+<ul>
+<li>Variable definitions are now considered to be executable statements.
+</ul>
+This means that you can now put variable definitions anywhere in the code
+and not jut at the start of a
+<a href=../../C/glossary.html#block>block.</a>
+Here is an example.
+
+<p>
+<center>
+<table bgcolor=ivory width="80%" border=1>
+<tr><td>
+<pre>
+
+ main()
+ {
+ float pi = 3.142; // Usual location for variable definitions
+
+ cout << "PI is " << pi << endl;
+
+ int Count = 1; // C++ allows us to place a definition here.
+
+ while (Count < 10)
+ {
+ cout << Count << endl;
+ }
+ }
+</pre>
+</td></tr>
+</table>
+</center>
+<p>
+
+It should be noted that <b>Count</b> is only in scope (usable) from the
+point of definition and to the end of the block.
+It can not be used in the previous <b>cout</b> statement.
+<p>
+
+The idea of this feature is to allow you to put variable declarations
+near to the place
+you wish to use them. Personnaly, I feel this should not be neccasary
+if you write small concise functions....
+
+There is one natty feature of this facility though. Check this
+example out.
+<p>
+<center>
+<table bgcolor=ivory width="80%" border=1>
+<tr><td>
+<pre>
+
+ main()
+ {
+ int Last = 10;
+
+ while (int Count; Count < Last; Count++)
+ {
+ cout << Count << endl;
+ }
+ }
+</pre>
+</td></tr>
+</table>
+</center>
+<p>
+In this example, <b>Count</b> is defined inside the <b>for</b>
+statement and only exists while the for block is being executed.
+
+
+<p>
+<hr>
+<h2>Examples:</h2>
+<!--
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../EXAMPLES/refvar.cc">Example program.</a>
+<p>
+
+<font color=brown>
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../../C/EXAMPLES/pointer_func.c">Example C program.</a>
+</font>
+-->
+
+<hr>
+<h2>See Also:</h2>
+
+</font>
+<hr>
+<font color=black>
+<h2>C References</h2>
+<p>
+
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href=../../C/SYNTAX/glo_int_vars.html> C local variables</a>
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/CONCEPT/data_types.html">data types</a>.
+
+</font>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+<script language="JavaScript">
+<!-- //
+document.write(document.lastModified);
+// -->
+</script>
+</address><p>
+</font>
+</body>
+</html>
diff --git a/reference/CPLUSPLUS/CONCEPT/reference_variable.html b/reference/CPLUSPLUS/CONCEPT/reference_variable.html
new file mode 100644
index 0000000..f907323
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/reference_variable.html
@@ -0,0 +1,167 @@
+<html>
+<head>
+<title>Reference variables</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>Reference Variables.</h1></center>
+<hr>
+<p>
+Reference variables allow two variable names to address the
+same memory location. The following example shows the
+technique in its simplest form.
+
+<p>
+<center>
+<table border=1 width="80%" bgcolor="ivory">
+<tr>
+<td>
+<pre>
+
+ #include <iostream.h>
+
+ main()
+ {
+ int var1;
+ int &var2 = var1; // var2 is a reference variable.
+
+ var1 = 10;
+
+ cout << "var1 = " << var1 << endl;
+ cout << "var2 = " << var2 << endl;
+ }
+</pre>
+</td>
+</tr>
+</table>
+</center>
+<p>
+
+
+Generally, you would not use a reference variable
+in this way. Its more likely that they would be used
+in function parameter lists to make the passing of
+pointers more readable.
+<p>
+This gives C++ the ability to provide a
+different approch to changing a variable from within a
+function. Consider the two following programs.
+
+<p>
+<center>
+<table border=1 width="80%" bgcolor="ivory">
+<tr>
+
+<td>
+<pre>
+
+ #include &lt;stdio.h&gt;
+
+ void Square(<b>int *pVal</b>);
+
+ main()
+ {
+ int Number=10;
+
+ printf("Number is %d\n", Number);
+
+ Square(<b>&Number</b>);
+
+ printf("Number is %d\n", Number);
+ }
+
+ void Square(<b>int *pVal</b>)
+ {
+ <b>*pVal</b> *= <b>*pVal;</b>
+
+ printf("Number is %d\n", <b>*pVal</b>);
+ }
+
+</pre>
+</td>
+<td>
+<pre>
+
+ #include &lt;stdio.h&gt;
+
+ void Square(<b>int &Val</b>);
+
+ main()
+ {
+ int Number=10;
+
+ printf("Number is %d\n", Number);
+
+ Square(<b>Number</b>);
+
+ printf("Number is %d\n", Number);
+ }
+
+ void Square(<b>int &Val</b>)
+ {
+ <b>Val</b> *= <b>Val</b>;
+
+ printf("Number is %d\n", <b>Val</b>);
+ }
+
+</pre>
+</td>
+</tr>
+</table>
+</center>
+<p>
+
+The program on the right should be clearer to read
+because you do not need to worry about pointer
+dereferencing.
+
+<hr>
+<h2>Examples:</h2>
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="..//EXAMPLES/refvar.cc">Example program.</a>
+<p>
+
+<font color=brown>
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../../C/EXAMPLES/pointer_func.c">Example C program.</a>
+</font>
+
+<hr>
+<h2>See Also:</h2>
+
+</font>
+<hr>
+<font color=black>
+<h2>C References</h2>
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/CONCEPT/data_types.html">data types</a>.
+
+</font>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+29-Sep-96</address><p>
+</font>
+</body>
+</html>
diff --git a/reference/CPLUSPLUS/CONCEPT/scope.html b/reference/CPLUSPLUS/CONCEPT/scope.html
new file mode 100644
index 0000000..74f651e
--- /dev/null
+++ b/reference/CPLUSPLUS/CONCEPT/scope.html
@@ -0,0 +1,100 @@
+<html>
+<head>
+<title>Scope in C++</title>
+</head>
+<body bgcolor="#dddddd">
+<font color=brown>
+<hr>
+<center><h1>Scope in C++.</h1></center>
+<hr>
+<p>
+
+The :: operator is used within C++ to identify global variables that
+conflict with local variable names. Obviously it would be good programming
+practice to use suitable names in the first place......
+
+<p>
+<center>
+<table width=1 bgcolor=ivory width=80%>
+<tr>
+<td>
+<pre>
+
+ #include <iostream.h>
+
+ int Counter = 1;
+
+ main()
+ {
+ int Counter = 1;
+
+ for (int i=0; i< 10; i++)
+ {
+ cout << Counter << " " << ::Counter << endl;
+ Counter++;
+ }
+
+ return 0;
+ }
+</pre>
+</tr>
+</td>
+</table>
+</center>
+<p>
+
+<hr>
+<h2>Examples:</h2>
+<img src="../../GRAPHICS/computer.gif" alt="o">
+<a href="../EXAMPLES/scope.cc">Example program.</a>
+<p>
+
+<hr>
+<h2>See Also:</h2>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../SYNTAX/ops.html">C++ operators.</a>.
+
+</font>
+<hr>
+<font color=black>
+<h2>C References</h2>
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/SYNTAX/glo_int_vars.html#global">Global Variables</a>.
+<p>
+<img src="../../GRAPHICS/whiteball.gif" alt="o">
+<a href="../../C/CONCEPT/expressions.html">C Expressions and Operators</a>.
+
+
+</font>
+
+<hr>
+<p>
+<center>
+<table border=2 width="80%" bgcolor="ivory">
+<tr align=center>
+<td width="25%">
+<a href="../cref.html">Top</a>
+</td><td width="25%">
+<a href="../../C/master_index.html">Master Index</a>
+</td><td width="25%">
+<a href="../SYNTAX/keywords.html">Keywords</a>
+</td><td width="25%">
+<a href="../../C/FUNCTIONS/funcref.htm">Functions</a>
+</td>
+</tr>
+</table>
+</center>
+<p>
+<hr>
+<font color=brown>
+<address>Martin Leslie
+<script language="JavaScript">
+<!-- //
+document.write(document.lastModified);
+// -->
+</script>
+</address><p>
+</font>
+</body>
+</html>