[问题] 怎么解释 T (&arr) [N]

楼主: noodleT (面T)   2016-03-08 21:34:09
如标题 板模 func( T (&arr) [N])
请问有办法解释电脑是
如何取得阵列大小?
或我们是传了什么资料进去吗?
&、[],分别做了哪些动作?
第二个问题:
class myclass{
float m[9];
void test(){
float m2[9];
func(m);//无法编译过
func(m2);//ok
}
}
有查到这种板模只能传入
编译前就决定好阵列大小的阵列,
但为什么无法传入成员变量?
作者: Caesar08 (Caesar)   2016-03-08 21:49:00
第一次看到有人说板模,不都是说模板吗?而且你第二份code没问题啊 http://ideone.com/5p7E4Rhttp://ideone.com/XAlsgK另外,T就是array的型态,()跟运算的优先级有关N是array的size,&就是reference没有&,当你传array的时候,他会decay成pointer
楼主: noodleT (面T)   2016-03-08 22:15:00
第二个问题我的确编译不过BCB6先不管T,arr 是指标,指标取&是?,然后又取阵列引索[n]
作者: Caesar08 (Caesar)   2016-03-08 22:37:00
不对。你写arr是指标,你写&arr是矩阵你查一下什么是decay应该就知道了
作者: james732 (好人超)   2016-03-09 01:32:00
板模是台语吗?XD
楼主: noodleT (面T)   2016-03-09 06:44:00
板模不也挺恰当的吗?可以灌入不同型态的变量~
作者: bibo9901 (function(){})()   2016-03-09 15:17:00
&是reference 不是取址T (&arr)[N] 意思是 arr is a reference to an array ofN elements of type T

Links booklink

Contact Us: admin [ a t ] ucptt.com