-
1376 votesanswersviews
抽象函数和虚函数有什么区别?
抽象函数和虚函数有什么区别?在哪些情况下建议使用虚拟或抽象?哪一个是最好的方法? -
20 votesanswersviews
为什么给纯虚函数定义是有意义的?
斯科特在Effective C,3rd Edition,pg . 43要创建一个抽象类,我们只需要给它一个纯虚拟析构函数: class AWOV { // AWOV = "Abstract w/o Virtuals" public: virtual ~AWOV() = 0; // declare pure virtual d... -
1188 votesanswersviews
虚构成员在构造函数中调用
我从ReSharper收到一条关于从我的对象构造函数调用虚拟成员的警告 . 为什么这不该做? -
254 votesanswersviews
C类成员函数模板可以是虚拟的吗?
我听说C类成员函数模板不能是虚拟的 . 这是真的? 如果它们可以是虚拟的,那么一个人可以使用这样一个函数的场景的例子是什么? -
2 votesanswersviews
来自基类虚函数的Boost :: python和迭代器
所以我正在尝试编写一个基类来处理包装std :: vector的类,我已经开始定义__iter__函数 . 我的第一种方法,也是我希望工作的方法,是在基类中使用begin()和end()函数 . 这样编译很好,但是当我在python中运行代码时,我得到一个类似于以下内容的错误: Boost.Python.ArgumentError:Container .__ iter __(Container)... -
18 votesanswersviews
公共虚函数在C中派生私有
我试图找出当派生类将虚拟函数声明为私有时会发生什么 . 以下是我写的程序 #include <iostream> using namespace std; class A { public: virtual void func() { cout<<"A::func called"<<endl; ... -
184 votesanswersviews
派生类中函数的C“virtual”关键字 . 有必要吗?
使用下面给出的结构定义...... struct A { virtual void hello() = 0; }; 方法#1: struct B : public A { virtual void hello() { ... } }; 方法#2: struct B : public A { void hello() { ... } }; 这两种覆盖hello函数的方法... -
-6 votesanswersviews
虚函数“形状”赋值
我似乎无法让我的气缸类正确执行其打印和音量功能 . 以下是赋值的说明:设计一个名为Shape的类,它是一个抽象基类 . Shape有两个纯虚函数,printShapeName和print . Shape包含另外两个虚函数,area和volume,每个函数都有一个返回零值的默认实现 . Point类从Shape继承这些实现(点的面积和体积均为零) . Point具有x和y坐标私有成员 . Cla... -
295 votesanswersviews
我可以调用基类's virtual function if I' m覆盖它吗?
假设我有类 Foo 和 Bar 设置如下: class Foo { public: int x; virtual void printStuff() { std::cout << x << std::endl; } }; class Bar : public Foo { public: int y; vo... -
4 votesanswersviews
为什么't a '基类对象' call it'拥有自己的虚函数? C
我已经阅读了C中的虚函数,并了解它们如何使用基类的指针为程序员提供对派生类的成员函数的访问 . (又名多态性) . 困扰我的问题是: 为什么在基类中声明一个具有相同名称的函数,如果最终必须将其声明为虚拟? ( Note: 我需要关于虚函数的多态性方面的答案) 在下面的代码中,如果使用基类指针(第22行)调用'virtual display()',则会显示错误 . 为什么C中的虚函数如此严... -
0 votesanswersviews
需要澄清虚函数和类的私有成员
在C中,如果基类的公共虚函数引用了私有成员字段,并且派生类不重写此方法,则该引用将指向派生类的私有成员 -
94 votesanswersviews
安全地覆盖C虚函数
我有一个带有虚函数的基类,我想在派生类中重写该函数 . 有没有办法让编译器检查我在派生类中声明的函数是否实际覆盖了基类中的函数?我想添加一些宏或某些东西,以确保我不会意外地声明一个新的功能,而不是覆盖旧的功能 . 举个例子: class parent { public: virtual void handle_event(int something) const { // boring... -
44 votesanswersviews
使用C中的私有函数覆盖公共虚拟函数
是否有任何理由使重写的C虚函数的权限与基类不同?这样做有危险吗? 例如: class base { public: virtual int foo(double) = 0; } class child : public base { private: virtual int foo(double); } C++ faq说这是一个坏主意,但没有说明... -
1 votesanswersviews
基类中的虚函数
假设我有一个形状形状的基类和两个派生类的正方形和圆形 . 现在我想要一个没有指定形状的函数 double foo(shape S) { return getArea; } 但是在打电话时打印正方形的区域 square sq(); foo(sq); 和呼叫时的圆圈区域 circle cr(); foo(cr); 因此,我在基类(仅返回0)和两个派生类中的相应虚函数中声明了 virtual fu...