2

I implemented an example class Demo, with an overloaded function run. The function run has a different implementation depending on whether it is called from an immutable instance of an object or a mutable instance. Is it also possible to create yet another version of run that runs when we call it from an anonymous function? i.e.,

Demo().run;

Here is the code so far.

#include <iostream>

using namespace std;

class Demo {
  public:
   Demo() { }

   void run() { cout << "Called from object or from function expecting a reference to object" << '\n'; }
   const void run() const { cout << "Called from const object" << '\n'; }
 };

int main(){
    const Demo obt;
    Demo obt2;
    obt2.run();
    obt.run();
    Demo().run();
}

The output is

Called from object or from function expecting a reference to object
Called from const object
Called from object or from function expecting a reference to object

so right now the Demo().run() sees the temporary anonymous class Demo() as a normal class.

Slugger
  • 665
  • 1
  • 5
  • 17

0 Answers0