公司名字不说了
题目是使用MFC编写一个程序,要求有很多.大概意思是表达式计算,比如两个表达式一个A:2+x,一个B:3-2x^2,要求输出A-B,A+B,A*B
要求计算空间复杂度和时间复杂度,时间是3个小时楼主当时使用的是vector,界面上用的两listctrl双击添加项
后来面试官来看代码,提出list,map的时间和空间复杂度
然后问了一个题目。。
使用面向对象的思想主要是封装,如果A为vector,B为list,C为map,完成C=A+B需要怎么做
楼主面向对象这边的确很薄弱,而且当时已经懵了
提出重载什么的都被否定强调是封装。。求大神解惑,如果有UML图更好。。面试题C面向对象

解决方案 »

  1.   

    这题出得够狠,公司叫什么呀?
    看起来表达式是含有一个未知数的算式,就是初中代数里的那种吧,未知数的最高次是乎没做说明。
    我觉得vector的思路是对的,第一个元素是常数项,第二个是x项系数,第三个是x^2项系数,依次类推。
    然后就是封装,重载+,-,*运算符。表达式存在vector里,封装一下别人就看不到是用vector表示的了。跟MFC没什么关系吧,考察的还是C++面向对象程序设计。输入表达式在控制台输入还顺些。
      

  2.   

    名字不方便说了。。虽然没给回复
    应该是主要考STL相关的,他考察的时候人机交互界面也占蛮大比例的
    封装的目的是为了适用不同的collection类型,题目本身其实蛮简单。。后面的题目不怎么会。。
      

  3.   

    http://tieba.baidu.com/p/2342444382?pid=33047480673&cid=&from=prin#33047480673
    在贴吧问的结果,里面解释的很好,能学到不少,关注的朋友可以看下