Re: passing const ptr argument
From: Ali Cehreli (acehreli_at_yahoo.com)
Date: 08/11/04
- Next message: Gianni Mariani: "Re: Open Source C++ Internet protocol library [OT]"
- Previous message: Gianni Mariani: "Re: passing const ptr argument"
- In reply to: Anthony: "passing const ptr argument"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Wed, 11 Aug 2004 01:50:19 -0700
On Wed, 11 Aug 2004 10:06:54 +0200, Anthony wrote:
> I want to write protect an argument that is passed by reference.
> But I still want to be able to call members of that argument.
This means that you can call only const member functions of those
objects.
> E.g. code (bottum) will gives the following compiler error:
> writeProtEvt.cpp: In member function `virtual void A::print(const B*)':
> writeProtEvt.cpp:24: error: passing `const B' as `this' argument of `virtual
> void B::print()' discards qualifiers
>
> Can anyone explain how to do this the right way?
>
> thanks in advance,
> Anthony Lansbergen
>
> // -------------------------------------------------------------------------
> ---
> #include <ostream.h>
> Class B
> {
> public:
> virtual void print()
> {
> cout << "printB" << std::endl;
> }
> };
>
> class A
> {
> public:
> virtual void print(const B* b)
> {
> cout << "printA" << std::endl;
> b->print();
> }
> };
Both of those member functions should be declared as const because
they don't modify the object:
virtual void print() const // <---
{
/* ... */
}
>
> main()
main returns 'int' and it must be specified:
int main()
Ali
- Next message: Gianni Mariani: "Re: Open Source C++ Internet protocol library [OT]"
- Previous message: Gianni Mariani: "Re: passing const ptr argument"
- In reply to: Anthony: "passing const ptr argument"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|