技术面试(C++)

面试中也曾经遇到过一些语法类的问题,大部分能够解决,但是也有很多做不出来,今天开始进行C++语法的总结,尤其因为我完全不用Java,所以,C++语法就显得愈加重要,开始阶段可能是一些我已经掌握的表面的知识,之后就是一些比较深层次或者偏门的知识,希望能一天一道,20天左右总结一遍。。


另外,如果各位看到我blog的同学或者前辈觉得我写的有啥错误,也请不吝赐教,因为我C++用的时间并不长,很多东西理解的并不好。。


NO.1 虚函数(virtual function)

这个应该算是我平时可以掌握的知识,因为自己写代码的时候也可能会涉及,就举一个最简单的例子吧,类定义如下所示:

#define NAME_SIZE 50

class Person {
        int id;     // all members are private by default
        char name[NAME_SIZE];
        
    public:
        void aboutMe() {
            cout << "I am a person.";
        }
};

class Student: public Person {
    public:
        void aboutMe() {
            cout << "I am a student.";
        }
};

如果运行:

    Student* p = new Student();
    p->aboutMe();

输出的是"I am a Student",但是,如果运行:

    Person* p = new Student();
    p->aboutMe();

输出的是"I am a Person",这是因为aboutMe()这个函数是在编译的时候解析的,这种机制是static - binding

如果把aboutMe()写作虚函数,则机制是dynamic - binding,

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值