摘要: template T maxValue(T& value1,T& value2,T& value3){ T tem=value1; if(value1<value2) tem=value2; if(tem<value3) tem=value3; return tem;}void main(){ int a=1,b=2,c=3; cout<<maxValue(1,2,3);//编译错误,因为函数使用的引用,相当于int&t=1,是错误的,t并未分配空间,而1是无名常量,无法引用 } 阅读全文
posted @ 2013-07-21 11:44 瀚海一漂一九九一 阅读(117) 评论(0) 推荐(0)
摘要: 原因:对于函数的调用,开销较大,但是使用inline内联的时候,调用函数的时候,编译器会将代码副本展开到函数调用处,所以,这样子程序的代码规模会比较大,但是能减少函数调用开销,提高性能。a.由程序员在函数中加inline关键字,是“建议”编译器将函数内联,编译器保留是否内联的最终权利,一般较小的函数,编译器给予内联,编译器有时忽略inline,不给于内联。b.对内联函数的任何修改,都需要重新编译客户端中的代码。理解:程序的编译和链接过程,是通过各个部分的编译之后,生成目标模块,再进行链接。①内联函数模块+②客户端模块(含内联函数调用)->链接->exe内联函数被修改,客户端中展开的 阅读全文
posted @ 2013-07-21 11:30 瀚海一漂一九九一 阅读(172) 评论(0) 推荐(0)