C++ 不允许在一个构造函数中调用另外一个构造函数(称为委派构造函数调用),而 C# 则允许。例如:  C++:
   struct Point {
  public:
  int X, Y;
  Point(int x, int y);
  Point(Point pt) : Point(pt.X, pt.Y) { } // 错误,C++ 不允许
  }; 
  C#:
   struct Point {
  public int X, Y;
  public Point(int x, int y);
  public Point(Point pt) : Point(pt.X, pt.Y) { } // 可以,C# 允许
  }; 

解决方案 »

  1.   

    C#: 
    struct Point { 
    public int X, Y; 
    public Point(int x, int y); 
    public Point(Point pt) : Point(pt.X, pt.Y) { } // 可以,C# 允许 
    }; 怎么在我这也不允许 ?
      

  2.   

    我是说在c#中 这样是可以阿
    public class Point {
      public int X, Y;
      public Point(int x, int y){}
      public Point(Point pt) : this(pt.X, pt.Y) { } }
      

  3.   

    可能我写得有问题 应该用this 我直接写了Point
      

  4.   

    例如(vc++中):
    class a
    {
    public:
    int i;
    a()
    {
    a(0);//委派构造函数调用
    }
    a(int n)
    {
    i=n;
    }
    };
    void main()
    {
      a obj;
      cout<<obj.i<<endl;
    }
    }输出结果不是0,而是一个很小的负数