关于《生活在真空中的程序员》中的面试题目的几点疑问?

Stefine 2006-06-27 11:58:05
前两天在CSDN里看到这篇文章
http://blog.csdn.net/absurd/archive/2006/06/06/776682.aspx

里面有几点疑问,望指教!

1. 你对DOC/VIEW模型是如何理解的?

重新翻了下 深入浅出MFC 里讲DOC/VIEW那一章,基本上理解了MFC实现它的方式(通过CDocTemplate把Frame View Document关联起来,当然还有种关联方式用CCreateContext)但对其在实际项目中的用途有点模糊,请谈一下大家在项目开发过程中怎么去把MVC这模型结合到自己项目中来的!以及它具体的应用情况! 在我的理解看来,DOC这一东东就仅仅是在Serialize上(通过CArchive类实现)还有些什么关键性的用途吗? 感觉这东东有点模糊,请详解,谢谢

2 大多数应用程序都只需要一种形式去表现,为什么还是要采用DOC/VIEW模型呢?


3. 一般提倡把用户界面和内部实现分离,你知道有几种方式可以把用户界面和内部实现分离吗?

    除了这种还有些什么?

4.   用new分配的指针,你可以判断指针是否为空吗?
    
    不太明白这意思
    char* value = "Stefanie924";
char * data ;
data = new char( strlen(value) +1 );
if( data != NULL)
{
strcpy( data, value );
}
cout<< data <<endl;
 这样算判断吗?

5. Copy constructor function与Assginment的差别?

拷贝构造是对未建立的对象,而Assginment是对已存在的对象(先delete原有对象所有的资源,然后再copy constructor ),
如CString str = new CString("Test");  
CStirng strTest = str; //此处为copy sonstructor而非assginment
   理解没错吧,还有些什么差别,请赐教 
...全文
2590 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdf9218 2006-06-30
  • 打赏
  • 举报
回复
mark
Richard_Hong 2006-06-30
  • 打赏
  • 举报
回复
mark
loosewell 2006-06-29
  • 打赏
  • 举报
回复
mark
liangyang1129 2006-06-29
  • 打赏
  • 举报
回复
第四点,没人答对啊,看来大家都不喜欢看书啊,

按C++ 标准,new分配的内存,当分配失败时会抛异常,而不是返回NULL指针.
ahao 2006-06-28
  • 打赏
  • 举报
回复
没你想的那么复杂,doc/view模型,其实就是对应于设计模式中的observer观察者模式,view就是doc的observer,doc是subject,doc和view之间是一对多的关系.
这个一般不需要专人分开去设计的,也不需要什么特别的工具.
Stefine 2006-06-28
  • 打赏
  • 举报
回复
谢了,天狼星星的回答

1-3: 现在还想听听各位牛人们在实际经验中是怎么用DOC/VIEW这样的模型的,不会就是派专人负责界面,专人负责数据模型的构建吧,具体应用到哪些工具,让我大概了解下啊(主要是想了解下这实际中这个的生产过程)

4-5:已解决

期待牛人的回复

我结帖很快的


broccoli 2006-06-28
  • 打赏
  • 举报
回复

这篇我也看了
有点意思
Stefine 2006-06-28
  • 打赏
  • 举报
回复
呵呵,有机会看下那本设计模式

结帖了,JF

再次感谢,天狼星星
lisypro 2006-06-28
  • 打赏
  • 举报
回复
UP
Stefine 2006-06-27
  • 打赏
  • 举报
回复
1-3我也晓得是设计模式的范畴,自己连那个经典的《设计模式》书都没看过,更不用说这方面的经验了,所以特来请教下在这方面有经验的牛人们,毕竟这方面只有实践经验才靠得住!哪个牛人简单的说下也好!谢了先

4的话,应该就那个样

5的话,谁还可以补充些


楼下的 Continue
一剑 2006-06-27
  • 打赏
  • 举报
回复
xuexi
DentistryDoctor 2006-06-27
  • 打赏
  • 举报
回复
1~3,属于设计模式的范畴.
4.差不多?
5.The C++ Language?
一般的C++大师会用operator=来实现Copy Constructor,因此其实两者是相辅相承的。
xiaosong8584 2006-06-27
  • 打赏
  • 举报
回复
1 在java中学过,不过还是搞不清楚mvc到底是怎么回事
不过相关的框架很多,大概就是把数据育封装,v c 层就说不清了

2 3 5我也想知道

4.   用new分配的指针,你可以判断指针是否为空吗?
是由于 new 操作很可能因为内存不足等原因而操作失败, 此时返回空指针,
判断是决定是否能进行后续操作的
strcpy( data, value ); 否则会产生 assertion error

WecanHuang 2006-06-27
  • 打赏
  • 举报
回复
学习
handsomerun 2006-06-27
  • 打赏
  • 举报
回复
我是说那个6年的人,不应该是这个水平
handsomerun 2006-06-27
  • 打赏
  • 举报
回复
去看了看blog,有点意思
估计那个面试的人也是在捣乱吧,不是很相信会这样的,呵呵
tong20037 2006-06-27
  • 打赏
  • 举报
回复
恩,是理解错了
ahao 2006-06-27
  • 打赏
  • 举报
回复
CStirng strTest = str;应该是负值函数

---
错,是拷贝构造
tong20037 2006-06-27
  • 打赏
  • 举报
回复
1-3 期待牛人

4,差不多了,不过我一般在指针变量声明时负初值
char * data = NULL;

5.CString str = new CString("Test");  
编译不通过

CStirng strTest = str;应该是负值函数
拷贝构造函数应该是
CString str("test");
CString strTest(str);



期待牛人详解

楼下继续
ahao 2006-06-27
  • 打赏
  • 举报
回复
1. 你对DOC/VIEW模型是如何理解的?

下面的题目就回答了这个问题

2 大多数应用程序都只需要一种形式去表现,为什么还是要采用DOC/VIEW模型呢?

谁能保证只需要一种?哪天想要另一种了呢?不用doc/view的话,改死.
之所以要分开,就是为了解耦,以后改界面不影响数据模型.

3. 一般提倡把用户界面和内部实现分离,你知道有几种方式可以把用户界面和内部实现分离吗?

界面和数据模型解耦,就可以叫doc/view模式,至于是不是MFC的doc/view都无所谓了

4,用new分配的指针,你可以判断指针是否为空吗?

新的c++编译器,new失败默认是throw bad_alloc异常,所以,判null是没用的.

5.Copy constructor function与Assginment的差别?

一个有返回值,一个没...
一个是拷贝构造时用的,一个是赋值时用的...
赋值时要注意自赋值问题,拷贝构造没这个问题...
...

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧