Visual C++ 2005指针和对象模型
1、 CLI对象模型
(1)CLI对象模型是类型实例在虚拟机中的表示;
(2)CLI对象模型是深刻认识现代面向对象、面向组件编程语言的根本;
(3)掌握C++/CLI的关键是掌握托管CLI对象模型和本地C++对象模型。
2、追踪句柄
Point^ p = gcnew Point();
指向“托管堆上一个完整的对象”的指针。
3、内部指针(interior pointer)
Interior_ptr<int> pa = &a[0];
包含本地指针,是本地指针的超集,可以指向:
(1)引用句柄
(2)值类型或者装箱值类型句柄
(3)托管类型的内部成员
(4)托管数据的内部元素
4、固定指针(pinning pointer)
void native_function(int* p)
int main()
{
Point^ p = gcnew Point(); //由于垃圾回收器的自动回收而使p的地址不稳定
pin_ptr<int> px =&p->x;
native_function(px);
}
可以指向:
(1)引用句柄
(2)值类型或者装箱值类型句柄
(3)托管类型的内部成员
(4)托管数据的内部元素
我思故我在