diff options
Diffstat (limited to 'reference/CPLUSPLUS/CONCEPT')
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/Makefile.am | 5 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/Makefile.in | 410 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/Master.html | 60 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/cast.html | 89 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/constructor.html | 78 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/funcoverload.html | 153 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/fundefault.html | 115 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/inheritance.html | 264 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/local_var.html | 144 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/reference_variable.html | 167 | ||||
-rw-r--r-- | reference/CPLUSPLUS/CONCEPT/scope.html | 100 |
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 <iostream.h> + + 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 <iostream.h> + + 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 <iostream.h> + + 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 <stdio.h> + + 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 <stdio.h> + + 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> |