Lecture Notes for Advanced Programming II

3 April 2003 - A Cautionary Tale


It Began Innocently Enough


What's Going On?


Let's See

$ cat t.cc
class event {
  public:
    event() { 
      cerr << "default\n"; 
      }
    event(event *) { 
      cerr << "conversion\n"; 
      }
    event(const event &) { 
      cerr << "copy\n"; 
      }
  };

int main() {
  event e = new event();
  }

$ CC -o t t.cc

$ ./t
default
conversion

$


What're The Fixes?


Use a Conversion Function


The explicit Fix


The Real Problem


Lessons to Learn


This page last modified on 10 April 2003.