[C++-sig] Wrapping operator=
Pierre Barbier de Reuille
pierre.barbier at cirad.fr
Tue May 18 14:22:26 CEST 2004
This is a Python issue : with the '=' operator semantic in Python, you
cannot overide it !
You can create another constructor and have a line like :
msg = Msg("Hello World!")
I think that's you I'd do ...
Pierre
On Tue, 2004-05-18 at 12:06, James Gunn wrote:
> *** Before acting on this e-mail or opening any attachment you are
> advised to read the disclaimer at the end of this e-mail ***
>
> Hi,
>
> I'm trying to wrap a very simple class (see below) that has operator=
> but I can't seem to get it right. Can anyone help please?
>
> class Msg
> {
> public:
> Msg() : m_msg() {}
> ~Msg() {}
>
> Msg& operator= (const std::string& msg)
> {
> m_msg = msg;
> return *this;
> }
>
> std::string Get() const { return m_msg; }
>
> void Set( const std::string& msg ) { m_msg = msg; }
>
> private:
> std::string m_msg;
> };
>
> I want to be able to allow users to work with the Msg class (from
> Python) as follows:
> msg = "Hello World"
>
> However, at the moment I've had to use add_property to wrap Get & Set
> which means users then have to do the following:
> msg.value = "Hello World"
>
> Anyone got any ideas of how I can do this?
>
> Thanks in advance.
>
> James Gunn
> Software Developer
> --LongSig
>
> Computer Bureau
> Communisis DM
> Manston Lane
> Crossgates
> Leeds
> LS15 8AH
>
> Telephone +44 (0)113 225 5306
> Fax +44 (0)113 225 5921
> Email James.Gunn at communisis-dm.co.uk
>
>
> **********************************************************************
> Please note: This e-mail and its attachments contain only the opinions
> of the sender and do not necessarily reflect the policy(s) of the
> communisis group in general.
>
> Employees of the communisis group are required not to make any
> defamatory statements and not to infringe or authorise any
> infringement of copyright or any other legal right by e-mail. Any such
> communication is therefore outside the scope of employment of the
> individual concerned. The communisis group will not accept any
> liability in respect of such a communication.
>
> Confidentiality: This e-mail and any attachments, together with their
> contents, are confidential unless otherwise explicitly stated in
> writing by the sender of this e-mail and are for the intended
> recipient only. If they have come to you in error you must not take
> any action in respect of them, which includes but is not limited to
> reproducing, sending or storing them, other than to notifying the
> sender immediately of the mistake, and deleting the e-mail, any
> attachments and any reproductions made by replying to it.
>
> Viruses: This e-mail and any attachments have been scanned for viruses
> but we cannot guarantee that they are virus free. The recipient should
> check this e-mail and any attachments for viruses. The communisis
> group accepts no responsibility for any damage caused by any virus
> transmitted by this e-mail or any of its attachments. In the event of
> any unauthorised copying or forwarding, the recipient will be required
> to indemnify the communisis group against any claim for loss or damage
> caused by any viruses or otherwise.
> **********************************************************************
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
>
>
> ______________________________________________________________________
> _______________________________________________
> C++-sig mailing list
> C++-sig at python.org
> http://mail.python.org/mailman/listinfo/c++-sig
--
Pierre Barbier de Reuille
INRA - UMR Cirad/Inra/Cnrs/Univ.MontpellierII AMAP
Botanique et Bio-informatique de l'Architecture des Plantes
TA40/PSII, Boulevard de la Lironde
34398 MONTPELLIER CEDEX 5, France
tel : (33) 4 67 61 65 77 fax : (33) 4 67 61 56 68
More information about the Cplusplus-sig
mailing list