int (Screen::*pmfi)() = &Screen::height;
Screen& (Screen::*pmfS)( const Screen& ) = &Screen::copy;
请问这些表达式是如何组织的,我怎么一点都看不懂,比如年吨int(Screen::*pmfi)()是什么意思,要理解又需要具体哪些方面的知识

解决方案 »

  1.   

    函数指针
    int (Screen::*pmfi)() = &Screen::height; 
    指的是定义一个函数指针 pmfi,pmfi指向的函数地址是 Screen类的成员函数height。
    调用执行pmfi就等于执行height。
      

  2.   

    int (Screen::*pmfi)() = &Screen::height; 
    Screen& (Screen::*pmfS)( const Screen& ) = &Screen::copy; Screen temp, temp2;
    temp.*pmfi(); // temp.height();
    temp.*pmfS(temp2); //temp.copy(temp2);
      

  3.   

    谢谢,但Screen& (Screen::*pmfS)( const Screen& )还是不太明白 
      

  4.   

    是不是Screen& (Screen::*pmfS)( const Screen& )中的( const Screen& )
    构造函数的参数?
      

  5.   


    Screen& (Screen::*pmfS)()//这是一个函数。
    中的( const Screen& )    //是上面函数的参数。这个参数是不能修改的类Screen的引用。写得真麻烦。