C++的数据结够问题,哪位高手帮解决一下
1、有list(链表)及其节点结构如下,完成其迭代器定义。
struct listnode
{int data;
listnode *next;};
class list{
listnode *first,*last;
public:
listnode *begin() {return first;}
listnode *end( ) {return last;}
//…};
class listiter{
listnode *p;
public:
listiter( ) {p=0;}
listnode * operator-> ( );
listiter& operator++( );
listiter operator++(int );
};
2、利用map和stl算法设计一电话薄类,完成其成员函数定义。
class telebook{
map <string,long> mymap;
public:
void add(string& name ,long number); //添加纪录
void del(string& name);//删除姓名为name的纪录
long find_number(string& name);// 查找姓名为name的电话号码
void modify_num(string& name , long number);//修改姓名为name的电话号码为number
void modify_name(string& name1, string& name2);//修改姓名为name1的姓名
3、设计Tstring类完成字符串操作。
class Tstring{
char *ptr;
int length;
public:
Tstring(const char *s);
Tstring(const Tstring& sou);
Tstring& operator=( const Tstring& sou);
Tstring& operator=(char c);
~ Tstring( );}
4、虚函数机制是如何实现的?若基类定义了虚函数,如何通过基类的指针或引用访问派生内中新定义的虚函数?如有以下程序段,如何实现通过pa访问fun2函数,写出具体代码。
class A {
public:
virtual void fun1( );};
class AB {
public:
virtual void fun2( );};
int main( )
{ AB abobj;
A* pa=&abobj;
5、有一栈类,在栈空时元素出栈、栈满时元素入栈均会引发异常,请定义异常并完成成员函数定义。
const int maxsize=100;
class stack{
int p[maxsize];
int n;
public:
void push(int x);
void pop( );
stack( ) {n=-1;}
};
6、定义类模板less_than,重载operator( )完成比较两个数大小操作。定义该类模板针对const char *类型数据进行大小比较的全局特化版本和对普通指针进行大小比较的部分特化版本。
template <class T>
class less_than
{ bool operator( ) (T a,T b);
}
[解决办法]
分太少了 问题太多了
呵呵