Is casting ever necessary?

From: Calum (calum.bulk_at_ntlworld.com)
Date: 12/16/03


Date: Tue, 16 Dec 2003 11:04:11 +0000

I was wondering if "casting" was ever necessary. This example is based
on the Microsoft Foundation Classes:

// Library classes:

class CDocument
{
        // Library functionality
};

class CView
{
protected:
        CDocument *doc;
        // Library functionality
};

// User classes:

class MyDoc : public CDocument
{
public:
        int user_data;
};

class MyView : public CView
{
public:
        MyDoc *getDocument() { return static_cast<MyDoc*>(doc); }
                // Is this ugly?
};

The question is, how do functions in MyView access the document MyDoc,
without making a cast? I just feel that a "cast" is an ugly solution to
this problem. Am I right in thinking that, is there a better solution?

Calum

-- 
Persistent data in C++: http://visula.org/persist


Relevant Pages

  • Re: Is casting ever necessary?
    ... >>class CDocument ... >>class CView ... >>The question is, how do functions in MyView access the document MyDoc, ...
    (comp.object)
  • Re: Is casting ever necessary?
    ... > class CDocument ... > class CView ... > class MyDoc: public CDocument ... > class MyView: public CView ...
    (comp.object)
  • Re: Is casting ever necessary?
    ... >class CDocument ... >class CView ... >class MyView: public CView ... >The question is, how do functions in MyView access the document MyDoc, ...
    (comp.object)