扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:陶刚编译 来源:天极开发 2007年11月16日
关键字:
template <class T> ref class Demonstration { int method() { typename T::A *aObj; // ... } }; |
int demoMethod() { Demonstration<int> ^demi = gcnew Demonstration<int>( 1024 ); return dm->method(); } |
error C2825: 'T': must be a class or namespace when followed by '::' |
template <class elemType, int size=1024> ref class Container { array<elemType> ^m_buf; int next; public: bool search( elemType et ) { for each ( elemType e in m_buf ) if ( et == e ) return true; return false; } Container() { m_buf = gcnew array<elemType>(size); next = 0; } void add( elemType et ) { if ( next >= size ) throw gcnew Exception; m_buf[ next++ ] = et; } elemType get( int ix ) { if ( ix < next ) return m_buf[ ix ]; throw gcnew Exception; } // ... }; |
template <class elemType, int size=1024> ref class Container { // 其它的都相同 ... // 这是一个函数成员模板... // 它可以同时引用包含的类参数和自有参数... template <class Comparer> bool search( elemType et, Comparer comp ) { for each ( elemType e in m_buf ) if ( comp( et, e ) ) return true; return false; } // ... }; |
class EqualGuy { public: bool operator()( String^ s1, String^ s2 ) { return s1->CompareTo( s2 ) == 0; } }; |
int main() { Container<String^> ^sxc = gcnew Container<String^>; sxc->add( "Pooh" ); sxc->add( "Piglet" ); // 成员模板搜索 ... if ( sxc->search( "Pooh", EqualGuy() ) ) Console::WriteLine( "found" ); else Console::WriteLine( "not found" ); // 传统的等于搜索 ... if ( sxc->search( "Pooh" ) ) Console::WriteLine( "found" ); else Console::WriteLine( "not found" ); } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者