我是一个新人,以前是直接学的JAVA,所以没有接触过指针现在跳过来学VC碰到一个问题!
例:CMenu menu;
    menu.CreatePopupMenu();    //能不能修改成:GetMenu()->CreatePopupMenu();
    GetMenu()->AppenMenu(····)         //或者修改成menu.AppenMenu(···);这个样子不?
到底什么时候用指针,什么时候用对象啊?
我怎么感觉都差不多啊?

解决方案 »

  1.   

    你没有理解对象和指针的真正涵义
    第一处是不能这样修改的,因为你的代码是要制做弹出式菜单
    第二处也不能那样修改,因为好象在CMainframe中没有能得到菜单对象的函数吧
    建议您看一下《深入浅出MFC》和《C++编程思想》
      

  2.   

    "."的左边必须是一个对象,"->"左边必须是指向对象的指针!
    如:
    CMenu menu,*pmenu;
    pmenu=&menu;menu.CreatePopupMenu();
    或:(*pmenu).CreatePopupMenu();//pmenu是指针,*pmenu则是具体对象,所以后面用"."
    或:pmenu->CreatePopupMenu();//"->"是"(*X)."的省略;