面试杂谈
文章平均质量分 64
小虎Sam很忙
你们的不客气,就是对我的最大帮助!
展开
-
一道关于C++派生类初始化的笔试题
最近看到这样一道笔试题,偶学习整理了一下,不到之处,希望各位指正。 问题: 下列程序的输出是什么?#include iostream>using namespace std;class A {public: A() {cout "A" endl;} ~A() {cout "~A" endl;}};class B {public: B() {cou原创 2008-02-14 11:12:00 · 2084 阅读 · 1 评论 -
类型转换的规则
今天同事有个问题,基本情况就是当Operator在GUI界面操作输入了一个非法值(例如一个负值),居然没有任何错误提示,导致最后log中记录的信息让人无法理解。从信息的处理流程来看,没有任何问题。后来发现是因为程序中有一个计算步骤是用一个unsigned int和输入的数值作了一个相加,然后再对计算结果大小进行判断。由于输入的是负数,负数和unsigned int做算术运算时,被自动转换为原创 2008-02-19 23:00:00 · 2036 阅读 · 1 评论 -
自己实现一把String类
好几次在笔试中要求写String类,我也都写了,但是从来没有完整的整理过,每次都是做题的时候写一写,笔试完了就忘了。今天忽然想起了,自己写了一点点。也只是简单测试了一下,欢迎拍砖。#include iostream>#include string.h>using namespace std;class MyString{public: MyString(); ~原创 2008-02-25 21:41:00 · 1915 阅读 · 3 评论 -
strlen和sizeof的区别小结
前两天发了这篇帖子,结果发现并没有提交成功,浪费了广大人民群众的感情。我错了,我真的错了。现在赶紧补上,希望各位大虾过客多多包涵。 笔试中经常遇到sizeof和strlen相关的问题,应试者稍有不慎就会中招。其实它们都是C中最基本的概念之一,如果笔试中答错了,无疑会得到考官的“鄙视”。小弟在此总结一下,如有不完整或错误之处,敬请补充和指正。1, sizeof是操作符(opera原创 2008-03-05 14:54:00 · 1362 阅读 · 0 评论 -
public, private和protected继承比较
以下内容整理自《程序员面试宝典》,重点讨论一下C++中三种继承方式的区别。1, 公有继承(public)基类成员对其对象的可见性与一般类及其对象的可见性相同,public成员可见,protected和private成员不可见。基类成员对派生类的可见性对派生类来说,基类的public和protected成员可见:基类的public成员和protected成员作为派生类的成员时,原创 2008-03-17 15:02:00 · 10976 阅读 · 4 评论 -
实现一个无法被继承的C++类
一个类不能被继承,也就是说它的子类不能构造父类,这样子类就没有办法实例化整个子类从而实现子类无法继承父类。我们可以将一个类的构造函数声明为私有,使得这个类的构造函数对子类不可见,那么这个类也就不能继承了。但是,这引出一个问题,客户程序岂不是也无法实例化这个类了?OK,让我们参考一下Singleton模式,用一个static函数来帮助创建这个类的实例,问题就解决了!c原创 2008-03-28 10:41:00 · 16652 阅读 · 4 评论 -
动态联编学习:一、多态性和动态联编
联编就是将模块或者函数合并在一起生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。在编译阶段就将函数实现和函数调用关联起来称之为静态联编,静态联编在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针(或者引用)的类型。转载 2009-02-19 17:22:00 · 3379 阅读 · 1 评论 -
动态联编学习:二、对象类型信息
为了证明我们的猜想,我们用下面的一个程序进行测试,下面的程序将获取普通的类和包含虚函数的类的字节大小。程序代码如下。 #include class shape_novirtual{ int a; public: void draw(){cout<<"shape_novirtual::draw()"<<endl;}};class shape_vi转载 2009-02-19 23:33:00 · 916 阅读 · 0 评论 -
动态联编学习:三、虚函数表VTABLE
编译器在执行过程中遇到virtual关键字的时候,将自动安装动态联编需要的机制,首先为这些包含virtual函数的类(注意不是类的实例)--即使是祖先类包含虚函数而本身没有--建立一张虚拟函数表VTABLE。在这些虚拟函数表中,编译器将依次按照函数声明次序放置类的特定虚函数的地址。同时在每个带有虚函数的类中放置一个称之为vpointer的指针,简称vptr,这个指针指向这个类的V转载 2009-02-20 16:33:00 · 3031 阅读 · 2 评论