在代码段中查找错误

时间:2014-11-13 14:48:30

标签: c++ debugging

我被要求在以下代码中找到错误。显然有5个错误,到目前为止我找到了其中的三个,这里是代码

#include <iostream>
class Base{
public:
    Base(int data) : _data(data){}
    virtual void printData(){
        std::cout << "Base " << _data << std::endl;
    }

private:
    int _data;
};

class Derived : public Base{
public:
    Derived(derivdata) : Base(derivdata){}
    void printData(){
        std::cout << "Derived " << _data << std::endl;
    }
}

int main(){
    Derived *var = new Derived(5);
    var->printData();
    Base* basevar = static_cast<Base>(*var);
    basevar->printData();
}
  1. 班级Derived不以半冒号结尾。
  2. Derived构造函数的参数未使用类型
  3. 声明
  4. Base的数据成员是固定的,因此无法在Derived中尝试访问。
  5. 我正在努力寻找其他人,我怀疑这与main()中的投射有关,但我对投射还不太了解。我希望在正确的方向上提供任何帮助。感谢

1 个答案:

答案 0 :(得分:0)

Base* basevar = static_cast<Base>(*var);  

这应该是

Base* basevar = static_cast<Base*>(var);