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# 允许
};
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# 允许
};
解决方案 »
- wpf从一个窗体中拖拽控件到另一个窗体
- C#如何实现对PDF文件的内容修改?在线等待!谢谢各位大哥来赐教!!!!!!!!!!!!!!!!
- VS2005里的Remoting通讯的问题
- DataSet怎么转化成Access数据
- CrystalReport for Visual Studio 2005中如何取得CrystalReport的Column的Name!!!
- 怎样向表中加入一条记录?
- 求教:在不加入gac的情况下,如何将程序的搜索目录设置为指定的绝对路径?
- 无法从DevComponents.AdvTree.NodeCollection转换为DevComponents.AdvTree.Node
- 高手请进
- 为什么我用数据窗口向导建立的数据窗口检索不出数据?
- 求一个通过经纬度来计算2点之间的距离的算法
- XML字段映射是什么意思啊,怎么做
struct Point {
public int X, Y;
public Point(int x, int y);
public Point(Point pt) : Point(pt.X, pt.Y) { } // 可以,C# 允许
}; 怎么在我这也不允许 ?
public class Point {
public int X, Y;
public Point(int x, int y){}
public Point(Point pt) : this(pt.X, pt.Y) { } }
class a
{
public:
int i;
a()
{
a(0);//委派构造函数调用
}
a(int n)
{
i=n;
}
};
void main()
{
a obj;
cout<<obj.i<<endl;
}
}输出结果不是0,而是一个很小的负数