腾讯后台开发笔试的一道选择题

我记得有一道题是类似

class A
{
public:
    virtual void foo() {};
    void bar() {};
    int b;
    static int k;
};
int A::k = 66;
int main()
{
    A* p = (A*)malloc(sizeof(A));
    p->foo();
    p->k=66;
    //....

}

到底是哪个错了呢?怎么感觉都没问题啊?

#笔试题目##腾讯#
全部评论
虚表指针没有初始化,无法获取类型信息和对应虚函数地址
点赞 回复 分享
发布于 2018-04-05 20:44
跪了……
点赞 回复 分享
发布于 2018-04-05 21:47
注意这里是malloc而不是new,malloc仅仅是申请内存,然后做一个指针类型的强制转换 没有调用构造函数,对象是不存在的,和具体对象有关的成员都不能访问
点赞 回复 分享
发布于 2018-04-05 20:22
你们开发岗有编程题吗?
点赞 回复 分享
发布于 2018-04-05 20:18

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务