Note that there are some explanatory texts on larger screens.

plurals
  1. POC++ Overload = operator
    text
    copied!<p>I'm not sure why I get the following error when trying to overload the = operator</p> <pre><code>error: passing ‘const MyCircle’ as ‘this’ argument of ‘double MyCircle::getRadius()’ discards qualifiers| </code></pre> <p>Code:</p> <pre><code>#include &lt;iostream&gt; #define PI 3.14 using namespace std; class MyCircle { public: MyCircle(); MyCircle(int r); MyCircle(const MyCircle&amp; c); void setRadius(double r); double getRadius(); double getArea(); static void increaseInstanceCount(); static int getInstanceCount(); MyCircle operator=(const MyCircle &amp;); private: double radius; static int instanceCount; }; int MyCircle::instanceCount = 0; /** 1. A default constructor, that sets the radius to 0 **/ MyCircle::MyCircle() { radius = 0.0; increaseInstanceCount(); } /** 2. A one argument costructor that accepts an int and uses it to initialize the radius **/ MyCircle::MyCircle(int r) { radius = r; increaseInstanceCount(); } /** 3. A copy constructor that accepts a Circle reference as an argument, and uses it to initialize radius **/ MyCircle::MyCircle(const MyCircle&amp; c) { radius = c.radius; increaseInstanceCount(); } void MyCircle::increaseInstanceCount() { instanceCount++; } int MyCircle::getInstanceCount() { return instanceCount; } void MyCircle::setRadius(double r) { radius = r; } double MyCircle::getRadius() { return radius; } double MyCircle::getArea() { return (radius * radius) * PI; } //overload = operator MyCircle MyCircle::operator=(const MyCircle &amp;rhs) { if(this == &amp;rhs) return *this; radius = rhs.getRadius(); return *this; } int main() { MyCircle circle; circle.setRadius(5.4); MyCircle circle2; circle2.setRadius(3.0); MyCircle circle3; circle3.setRadius(343.3); cout &lt;&lt; "Total instances: " &lt;&lt; circle.getInstanceCount() &lt;&lt; endl; return 0; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload