C++ - just beyond the basics. More you can do
Things you can do in C++ ... just a bit beyond the first basics of a class:
1. You can declare that a method is
const if it doesn't change any of the instance variables and that will make it a bit more efficient when you run it.
2. You can refer to an instance variable within a method using
this-> if you want to use the same variable name for a parameter to the method (or as a local variable within it)
3. You can declare a
destructor method (which has the same name as the class name preceded by a ~ - a tilde) which is code to be run when you've finished with an object, and before the program finishes
4. You can have two methods of the same name but with a different 'pattern' of parameters, and your program will work out which is the one you're calling in each case.
This is similar to polymorphism ... but not actually polymorphism; Polymorphism IS supported by C++ as well!
These are all just slightly beyond the first basics, and you certainly won't use ALL of them in a single program (unless you're doing a class exercise as I was yesterday!) Here are sample declarations for three of these techniques:
class MSheet {
public:
MSheet(float ecs, float why);
MSheet(float ecs); // No. 4 - 2 methods of same name
~MSheet(); // No. 3 - destructor
void setx(float size);
void sety(float size) ;
float getarea() const; // No. 1 - const
private:
float x;
float y;
};
and for "this":
MSheet::MSheet(float x, float yy) {
this->x = x; // No. 2 - this
(written 2006-11-14, updated 2009-01-01)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
C239 - C and C based languages - Putting it all together [836] Build on what you already have with OO - (2006-08-17)
[945] Code quality counts - (2006-11-26)
[1181] Good Programming practise - where to initialise variables - (2007-05-09)
[2646] Compile but do not run PHP - syntax check only - (2010-02-22)
[2673] Multiple Inheritance in C++ - a complete example - (2010-03-12)
[2674] Make and makefiles - a commented example to help you learn - (2010-03-12)
[2851] Further C++ material - view new or old - (2010-07-04)
[3067] Using C and C++ functions in the same program - how to do it - (2010-11-24)
[3069] Strings, Garbage Collection and Variable Scope in C++ - (2010-11-25)
[3252] C++ - unknown array size, unknown object type. Help! - (2011-04-17)
[3810] Reading files, and using factories to create vectors of objects from the data in C++ - (2012-07-21)
[4326] Learning to program - comments, documentation and test code - (2014-11-22)
[4374] Test driven development, and class design, from first principles (using C++) - (2014-12-30)
[4559] When do I use the this keyword in C++? - (2015-10-29)
C233 - C and C based languages - OO in C++ - beyond the basics [798] References and Pointers in C++ - (2006-07-10)
[801] Simple polymorphism example - C++ - (2006-07-14)
[831] Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13)
[1217] What are factory and singleton classes? - (2007-06-04)
[1572] C - structs and unions, C++ classes and polymorphism - (2008-03-13)
[1674] What a lot of files! (C++ / Polymorphism demo) - (2008-06-12)
[1819] Calling base class constructors - (2008-10-03)
[2577] Complete teaching example - C++, inheritance, polymorphism - (2010-01-15)
[2845] Objects and Inheritance in C++ - an easy start - (2010-07-01)
[3056] C++ - a complete example with polymorphism, and how to split it into project files - (2010-11-16)
[3123] C++ objects - some short, single file demonstrations - (2011-01-07)
[3124] C++ - putting the language elements together into a program - (2011-01-08)
[3142] Private and Public - and things between - (2011-01-22)
[3244] C and C++ - preprocess, compile, load, run - what each step is for - (2011-04-12)
[3251] C++ - objects that are based on other objects, saving coding and adding robustness - (2011-04-17)
[3508] Destructor methods in C++ - a primer - (2011-11-05)
[3811] Associated Classes - using objects of one class within another - (2012-07-21)
[3979] Extended and Associated objects - what is the difference - C++ example - (2013-01-18)
[4356] Object factories in C++, Python, PHP and Perl - (2014-12-19)
[4375] Final examples for 2014 - and a look at our 2015 training course options - (2014-12-31)
[4377] Designing a base class and subclasses, and their extension, in C++ - (2015-01-01)
[4560] Variables, Pointers and References - C and C++ - (2015-10-29)
Some other Articles
Presenting Melksham - for a weekend away in WiltshireC++ and Perl - why did they do it THAT way?Hotel door furnitureTraining rooms to learn Open Source programmingC++ - just beyond the basics. More you can doThe LAMP Cookbook - Linux, Apache, MySQL, PHP / PerlWhy shouldn't I spam?Staying at your own hotelFrench ExchangeA lion in a cage - PHP