gpt4 book ai didi

.net - 与C#的default(T)等效的C++/CLI是什么?

转载 作者:行者123 更新时间:2023-12-03 20:49:45 26 4
gpt4 key购买 nike

我正在使用一些C ++ / CLI代码(新语法),并试图声明一个泛型类型,并希望将成员变量设置为其默认值。

在C#中:

class Class<T>
{
T member = default(T);
}


CLI中的等效功能是什么?

generic<typename T> public ref class Class 
{
public:
Class() : member(default(T)) // <-- no worky
{
}
private:
T member;
};

最佳答案

有趣的是,语法使它看起来像这样:T()。它确实需要添加副本构造函数。

generic<typename T> 
public ref class Class
{
public:
Class() : member(T())
{
}

Class(Class^ c)
{
member = c->member;
}

private:
T member;
};


编辑
DOH这也可以工作(在C#领域中呆了很长时间,我忘记了NULL和0在C ++中是同一件事,因此不需要其他值和引用类型默认值):

generic<typename T> 
public ref class Class
{
public:
Class() : member(0)
{
}

Class(Class^ c)
{
member = c->member;
}

private:
T member;
};

关于.net - 与C#的default(T)等效的C++/CLI是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1962600/

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