Re: virtual method hidden
Re: virtual method hidden
- Subject: Re: virtual method hidden
- From: "Sean McBride" <email@hidden>
- Date: Thu, 8 Dec 2005 16:54:11 -0500
- Organization: Rogue Research
On 2005-12-08 13:29, Steve Mills said:
>And a base class:
>
>class fFolderWatcher {
> public:
> virtual OSErr WatchThisFolder(const short vrn, const long id);
> virtual OSErr WatchThisFolder(const FolderSpec& fold);
>};
>
>And a subclass of that:
>
>class dGraphicsFolderWatcher : public fFolderWatcher {
> public:
> virtual OSErr WatchThisFolder(const short vrn, const long id);
>};
>
>The warning is that the base class method is being hidden by the
>subclass method:
>
>fFolderWatcher.h:56: warning: 'virtual OSErr
>fFolderWatcher::WatchThisFolder(const FolderSpec&)' was hidden
>dFolderWatchers.h:29: warning: by 'virtual OSErr
>dGraphicsFolderWatcher::WatchThisFolder(short int, long int)'
>
>I don't see how this is possible, unless the compiler is
>deconstructing the FolderSpec into its parts, which just happen to be
>a short and a long. But why wouldn't it find the base class method
>that actually takes (short, long)?
What David said. This is a warning gcc gives that CW does not, and I
came across it recently too. From what I learned googling, one should
basically not override overloaded methods. Or if you do, you have to
override all of them, ie your dGraphicsFolderWatcher needs to override
WatchThisFolder(const FolderSpec& fold), you could just call super in
your override.
--
____________________________________________________________
Sean McBride, B. Eng email@hidden
Rogue Research www.rogue-research.com
Mac Software Developer Montréal, Québec, Canada
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden