gpt4 book ai didi

c++-cli - 为什么不能将跟踪引用用作类成员?

转载 作者:行者123 更新时间:2023-12-04 03:14:40 24 4
gpt4 key购买 nike

以下代码:

ref class A
{
private:
int% referenceToAnInt;
};

在 Visual Studio 中产生以下错误:

error C3160: 'int %': 托管类的数据成员不能有这种类型

我认为跟踪引用是托管的东西——那么为什么它们不能成为托管类的成员呢?另外:如何在 C++/CLI 中正确存储对值类型的引用?

最佳答案

CLR 不允许将跟踪引用存储为字段。此外,来自 C++/CLI-Spec:

A program containing a tracking reference that has storage duration other than automatic is ill-formed. (This precludes having a tracking reference as a data member.)

我猜他们想避免这样的问题,即您保留引用的时间比引用对象的实际生命周期长。另一种方法是使用包装器 ref 类来保存值,或委托(delegate)读取/写入。

关于c++-cli - 为什么不能将跟踪引用用作类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10432435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com