• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 214
  • Last Modified:

Overloading the = operator?

I have a class

class myClass {
  private:
    CString m_FirstName;
    CString m_LastName;

  public:
    // getter and setter methods..
    // blablabla.. the usual..
}

I want to overload the = operator, but I get some funny error messages like:

E:\radec\src\GlobalDirectory\GLOBDir.cpp(101) : error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class CTAG' (or there is no acceptable conversion)

What do I do wrong?

I only want to be able to do the following:

myClass c1,c2;
...
...
c1 = c2; <- I wanna do this
...



0
lar_jens
Asked:
lar_jens
1 Solution
 
KangaRooCommented:
class myClass {
  private:
     CString m_FirstName;
     CString m_LastName;

  public:
  // getter and setter methods..
  // blablabla.. the usual..

  myClass& operator=(const myClass& other);
}

myClass& myClass::operator=(const myClass& other)
{
    m_FirstName = other.m_FirstName;
    m_LastName = other.m_LastName;
    return *this;
}
0
 
mahnoCommented:
Hi lar_jens,

..h file:
//...
public:
myClass operator = (const myClass &Arg);
//...


..cpp file:
myClass myClass::operator = (const myClass &Arg) {
  //...
  return *this;
}

Hope that helps
  mahno

0
 
lar_jensAuthor Commented:
Thank you.. =)
0
 
nietodCommented:
mahno. In most cases operator = can return a reference.  That will usually be better than returning a value.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

Tackle projects and never again get stuck behind a technical roadblock.
Join Now