65,206
社区成员
发帖
与我相关
我的任务
分享template <typename valType>
class BTnode {
public:
BTnode( const valType &val );
private:
int _cnt; // occurrence count
valType _val;
BTnode *_lchild;
BTnode *_rchild;
void display_val( BTnode *pt, ostream &os ) const;
BTnode( const BTnode& );
};
template <typename valType>
inline
BTnode<valType>::
BTnode( const valType &val )
: _val( val )
{
_cnt = 1;
_lchild = _rchild = 0;
}template <int pos>
class num_sequence {
public:
virtual ~num_sequence(){};
int elem( int pos ) const;
protected:
virtual void gen_elems( int pos ) const = 0;
bool check_integrity( int pos, int size ) const;
//...
};BTnode<double> instance;
num_sequence<5> instance;
template<void (*p)(int, double)>
class A{
public:
A(int len, double rate):_len( len ), _rate( rate)
{
if(!p)
;//error message here.
p(_len, rate);
}
//...other methods here.
private:
int _len;
double _rate;
};
//using in client
void cal(int len, double rate);
A<cal> instance;template<typename elemType, typename Comp = less<elemType> >
class LessThanPred{
public:
LessThanPred( const elemType &val ):_val( val ){ }
bool operator()( const elemType &val ) const
{ return Comp( val, _val );}//此处迷糊
void val(const elemType &val) { _val = val; }
elemType val() const { return _val; }
private:
elemType _val;
};
class StringLen{
public:
bool operator()( const string &s1, const string s2 )
{
return s1.size() < s2.size();
//test++;
}
//private:
//int test;
};
LessThanPred<int> ltpi(1024);
LessThanPred<string, StringLen> ltps("Pooh");
if(ltps("abc")) ;//something