相关疑难解决方法(0)

822
推荐指数
10
解决办法
35万
查看次数

为什么我必须在Visual C++中的派生类声明中指定纯虚函数?

给定基类A和派生类B:

class A {
public:
  virtual void f() = 0;
};

class B : public A {
public:
  void g();
};

void B::g() {
    cout << "Yay!";
}

void B::f() {
    cout << "Argh!";
}
Run Code Online (Sandbox Code Playgroud)

我得到错误,说在尝试定义void B :: f()时没有在B中声明f().我必须在B中明确声明f()吗?我认为如果接口改变,我不应该纠正从它派生的每个类中的声明.B是否无法自动从A获取所有虚函数的声明?

编辑:我发现一篇文章说纯虚函数的继承取决于编译器:http: //www.objectmentor.com/resources/articles/abcpvf.pdf

我正在使用VC++ 2008,想知道是否有一个选项.

c++ virtual definition visual-c++

4
推荐指数
2
解决办法
3542
查看次数

C语句中的声明语句和赋值语句之间的区别?

我是编程和尝试学习C的新手.我正在读一本书,在那里我读到了这些陈述但却无法理解它们的含义.

c difference

0
推荐指数
1
解决办法
1万
查看次数