【编程开发】AspAsp.NetCGIPHPJspXMLPERLC++C#VCVBDelphiPowerBuilderJAVA汇编数据库编程移动开发其它语言

您现在的位置:首页 > 网络学院 > 编程开发 > VC > C++/CLI解析之基于堆栈的对象与跟踪引用

C++/CLI解析之基于堆栈的对象与跟踪引用

来源: 作者: 日期:2006-12-27

【聚杰网VC】C++/CLI解析之基于堆栈的对象与跟踪引用

  拷贝构造函数

  在下面的例子中,p6由给定的坐标构造而成,而p7则初始化为p6的一个副本,这就需要Point有一个拷贝构造函数;然而,在默认情况下,编译器不会为这些引用类产生一个拷贝构造函数。那么,在这种情况下,就必须自己编写一个。

Point p6(3,4), p7 = p6;

  以下,是Point的拷贝构造函数:

Point(Point% p)
{
 X = p.X;
 Y = p.Y;
}

  而对一个本地类N的拷贝构造函数,一般声明成如下形式:

N(const N& n);

  但是,对引用类来说,因为%取代了&,所以在CLI的世界中,const显得有点格格不入。

  赋值操作符

  以下表达式:

p7 = p6;

  就需要一个赋值操作符,但再次提醒,这不是自动提供的。以下就是一个自定义的操作符例子:

Point% operator=(Point% p)
{
 X = p.X;
 Y = p.Y;
 return *this;
}

  之所以没有提供默认的拷贝构造函数或赋值操作符,是因为所有的引用类(除了System::Object),都有一个基类:System:: Object,而这个类并没有提供一个拷贝构造函数或赋值操作符。基本上,这两者默认都会调用它们基类中相应的实现版本,但基类中却一个对应的定义也没有。

上一页 1 2 3 4 下一页

评论   点击查看全部评论
您的评论参与,将为聚杰带来更大的动力!请不要吝啬!
快速回复
请使用文明语言让我们维护健康绿色网络环境!

匿名发表   验证码: