where T:new()

原创 2011年01月21日 14:19:00

new()构造函数约束允许开发人员实例化一个泛型类型的对象。

 
一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的构造函数。 
在使用new()约束时,可以通过调用该无参构造函数来创建对象。 


基本形式: where T : new() 

 

如下:

 

public class A<T> where :type,new()

{

       public void Test()

      {

            T t=new T();

       }

}

 

main中如下:

Test t=new Test();

 

 

Test类

public class Test

{

        public Test(int a)

        {

 

        }

}

 

此时不能编译通过。

解决方案:在Test类中加入无参构造函数即可。

 

以前我们在类中实例化泛型类时,一般要用T.CreateInstance(...);现在方便了许多,不得不说,new()很给力。

new T 与new T()的区别

①T *p =new T; ②T *p =new T(); 这两类用法不同点的总结。   1.若T为类类型,且用户定义了构造函数,则两种形式的效果完全相同,都会调用这个定义了的...
  • sdauzxl
  • sdauzxl
  • 2016年09月20日 16:27
  • 551

class A<T>where T:new()是什么意思

where表明了对类型变量T的约束关系。where T: A表示类型变量是继承于A的,或者是A本身。where T:new()指明了创建T的实例时应该使用的构造函数。...
  • qwlovedzm
  • qwlovedzm
  • 2015年03月19日 17:40
  • 3847

new T and new T()

class T{public: T() {  cout }}; int* p = new int(); //初始化为0 int* q = new int; //不初始化 cout cout T* t ...
  • majcos
  • majcos
  • 2005年12月29日 11:23
  • 874

new (nothrow) T() 的原理

查看中对new的声明. void* operator new(std::size_t) throw (std::bad_alloc); void* operator new(std::size_t, ...
  • eclipser1987
  • eclipser1987
  • 2012年09月27日 12:50
  • 3996

\t\t深入C++的new(转载)

new和delete运算符用于动态分配和撤销内存的运算符new用法:           1.      开辟单变量地址空间                1)new int; //开辟一个存放...
  • our2848884
  • our2848884
  • 2017年04月17日 15:09
  • 63

Windows下MySQL忘记了密码怎么修改

如果在Windows下忘记了MySQL的密码,可以这样做: 1.关闭正在运行的MySQL服务: 在CMD中输入net stop mysql或者在Windows+r 调出运行窗口输入services...
  • qq_28602957
  • qq_28602957
  • 2016年04月05日 16:35
  • 1244

C++动态申请内存 new T()与new T[]的区别

new与delete我们知道,new和delete运算符是用于动态分配和撤销内存的运算符。new的用法 开辟单变量地址空间; i. 如 new int ; 指开辟一个存放数组的存储空间,返回...
  • fly_yr
  • fly_yr
  • 2015年08月26日 20:01
  • 1254

C ++的new、delete

当写出p = new P();这样的代码的时候, 实际上有两步操作, 首先分配内存,然后在分配好的内存之上初始化类成员. 第二步是有构造函数完成的, 第一步就是new函数的工作. 全局的new有...
  • a627088424
  • a627088424
  • 2015年05月26日 10:59
  • 4583

C#中的where泛型约束中的new()

原文:http://www.luacloud.com/2011/where-generic-constraint-new.html 1.在MSDN上面对new()解释说到是where字句的构...
  • Joyhen
  • Joyhen
  • 2013年12月10日 15:06
  • 4554

Comparator<T> 返回值分析

这里有两种方式写Comparator的方式 第一种:Collections.sort(mOldFileInfos, new Comparator() { // 正数代表第二个数大于第一...
  • telenewbie
  • telenewbie
  • 2015年04月15日 16:20
  • 2432
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:where T:new()
举报原因:
原因补充:

(最多只允许输入30个字)