• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdeedu
  • Sitemap
  • Contact Us
 

kig

FakeClass Class Reference

#include <common.h>

List of all members.


Detailed Description

The below is a trick.

ObjectType's implement the singleton pattern. There can be only one of them at each time. This one instance of them needs to be constructed at some time, within the following restrictions:

1. They need to be constructed in the right order: if one ObjectType uses another in its constructor, the other needs to be constructed first. To achieve this, we use a scheme with instance() functions, that have a static variable in the body of the function ( if we would define them static outside of the function body, C++ would provide no guarantee on the order they would be called in ).

2. They need to be constructed before Kig tries to use them. They need to be added to the ObjectTypeFactory before anyone tries to use that class to fetch a type. The below is a trick to achieve that in combination with the previous. Basically, we add a fake static instance of an empty class that receives the instance of the ObjectType as an argument to its constructor. C++ then guarantees that these things will be constructed before main() is entered.

Thus, for your own ObjectType classes: use the scheme with the static instance methods, and add

 KIG_INSTANTIATE_OBJECT_TYPE_INSTANCE( MyObjectType)
to the .cpp file of your class.

Definition at line 99 of file objects/common.h.


Public Member Functions

 FakeClass (const ObjectType *)

Constructor & Destructor Documentation

FakeClass::FakeClass ( const ObjectType *   )  [inline]

Definition at line 101 of file objects/common.h.


The documentation for this class was generated from the following file:
  • objects/common.h

kig

Skip menu "kig"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

kdeedu

Skip menu "kdeedu"
  • kalzium
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  •   docs
  •   src
  • parley
  •   stepcore
Generated for kdeedu by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal