正在加载图片...
Exercises 1、写出广义表表示法表示的树的类声明,并给出如下成员函数的实现 (1) operator>()接收用广义表表示法表示的树作为输入,建立广义表的存储表示 (2)复制构造函数用另一棵表示为广义表的树初始化 (3) operator==()测试用广义表表示的两棵树是否相 (4) operator<()用广义表的形式输出一棵树 (5)析构函数清除一棵用广义表表示的树 2, Start with Pointer ToMemberOperator cpp and show that polymorphism still works with pointers-to-members, even if operator->* is overloaded //Pointer ToMemberOperator cpp using namespace class Dog i put int run(int i)const i cout <<"runin returnI, int eat(int 1)const cout <<"eat\n return I int sleep(int i)const cout <<"ZZZ\n return typedef int(Dog: "PMF)(int)const l operator->* must return an object ∥ that has an operator class Function object i Dog ptr PMF pmem; public l Save the object pointer and member pointer otr( wp), pmem(pmf)i cout <<"FunctionObject constructor in //Make the call using the object pointer int operator((int i)const i cout <<"FunctionObject: operator(\n return(ptr->*pmem)(i) // Make the callExercises6 1、写出广义表表示法表示的树的类声明,并给出如下成员函数的实现: (1) operator>>( ) 接收用广义表表示法表示的树作为输入,建立广义表的存储表示; (2) 复制构造函数 用另一棵表示为广义表的树初始化一棵树; (3) operator= = ( ) 测试用广义表表示的两棵树是否相等; (4) operator<<( ) 用广义表的形式输出一棵树; (5) 析构函数 清除一棵用广义表表示的树。 2、Start with PointerToMemberOperator.cpp and show that polymorphism still works with pointers-to-members, even if operator->* is overloaded. //PointerToMemberOperator.cpp #include <iostream> using namespace std; class Dog { public: int run(int i) const { cout << "run\n"; return i; } int eat(int i) const { cout << "eat\n"; return i; } int sleep(int i) const { cout << "ZZZ\n"; return i; } typedef int (Dog::*PMF)(int) const; // operator->* must return an object // that has an operator(): class FunctionObject { Dog* ptr; PMF pmem; public: // Save the object pointer and member pointer FunctionObject(Dog* wp, PMF pmf) : ptr(wp), pmem(pmf) { cout << "FunctionObject constructor\n"; } // Make the call using the object pointer // and member pointer int operator()(int i) const { cout << "FunctionObject::operator()\n"; return (ptr->*pmem)(i); // Make the call }
向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有