开发者社区> 问答> 正文

我copy了 Effective C++ 里的代码 出错了? 400 报错

我copy了 Effective C++ 里的代码 出错了? 400 报错

大神们请看:

#include <iostream>
using namespace std;


class Base
{
private:
int x;
public:
virtual void mf1() = 0;
virtual void mf1(int ) { cout << "call Base::mf1(int )" << endl; }
};


class Derived: private Base
{
public:
virtual void mf1() // 转交函数 (forwarding function), inline函数
{
cout << "call Derived::mf1()" << endl;
Base::mf1();
}
};


int main(void)
{
Derived d;
int x = 0;
d.mf1();  // 很好,调用的是Derived::mf1
return 0;
}

可是我编译了,但是无法链接上,难道我有问题?参见《Effective C++》第三版 p160

展开
收起
爱吃鱼的程序员 2020-05-30 21:56:47 438 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    Base::mf1();你这是干嘛啊######哥,只是书上代码阿######

    virtual void mf1(int ) { cout << "call Base::mf1(int )" << endl; }

    这玩意 又不是静态的函数 



    ######

    Base::mf1();

    你这样写调用错了吧,这样能调用基类的纯虚函数吗,你确定代码没错?

    应该调用基类的虚函数吧,不是纯虚函数

    你加个参数

    2020-05-30 21:56:48
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载