dka*_*man 15 .net generics default c++-cli
我正在使用一些C++/CLI代码(新语法)并尝试声明泛型类型,并希望将成员变量设置为默认值.
在C#中:
class Class<T>
{
T member = default(T);
}
Run Code Online (Sandbox Code Playgroud)
CLI中的等价物是什么?
generic<typename T> public ref class Class
{
public:
Class() : member(default(T)) // <-- no worky
{
}
private:
T member;
};
Run Code Online (Sandbox Code Playgroud)
dka*_*man 11
有趣的是,语法使它看起来像这样:T().它确实需要添加一个复制构造函数.
generic<typename T>
public ref class Class
{
public:
Class() : member(T())
{
}
Class(Class^ c)
{
member = c->member;
}
private:
T member;
};
Run Code Online (Sandbox Code Playgroud)
编辑 DOH这也有效(在C#land中已经存在了这么长时间我忘记了NULL和0在C++中是相同的,因此不需要不同的值和引用类型默认值):
generic<typename T>
public ref class Class
{
public:
Class() : member(0)
{
}
Class(Class^ c)
{
member = c->member;
}
private:
T member;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3954 次 |
| 最近记录: |