FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
C++
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
September 01, 2005

C++/CLI: Cloning

(Page 5 of 11)

September, 2005: C++/CLI: Cloning

Listing 3

using namespace System;

public ref class Circle : ICloneable
{
     Point^ origin;
     float radius;
public:
     property Point^ Origin
     {
          Point^ get() { return static_cast<Point^>(origin->Clone()); }
     }
     void SetOrigin(int x, int y)
     { 
          origin->X = x;
          origin->Y = y;
     }
     void SetOrigin(Point^ p)
     { 
          SetOrigin(p->X, p->Y);
     }
     property double Radius
     {
          double get() { return radius; }
          void set(double value) {
               radius = static_cast<float>(value);
          }
     }
     Circle()
     {
          origin = gcnew Point;
          SetOrigin(0, 0);
          Radius = 0.0;
     }
     Circle(int x, int y, double r)
     {
          origin = gcnew Point;
          SetOrigin(x, y);
          Radius = r;
     }
     Circle(Point^ p, double r)
     {
          origin = gcnew Point;
          SetOrigin(p->X, p->Y);
          Radius = r;
     }
     virtual String^ ToString() override
     {
          return String::Concat("{", Origin, ",", Radius, "}");
     }

     virtual Object^ Clone()
     {
/*1*/          Circle^ c = static_cast<Circle^>(MemberwiseClone());
/*2*/          c->origin = static_cast<Point^>(origin->Clone());
/*3*/          return c;
     }
};

Previous Page | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 Next Page
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK