888得票17回答
在C++中如何声明一个接口?

我该如何设置一个表示接口的类?这只是一个抽象基类吗?

244得票4回答
虚函数和纯虚函数的区别

纯虚函数和虚函数有什么区别?我知道"纯虚函数是没有函数体的虚函数",但这意味着什么?下面这行代码实际上执行了什么操作:virtual void virtualfunctioname() = 0

218得票10回答
具有实现的纯虚函数

我的基本理解是,纯虚函数没有实现,但我被告知可能会有纯虚函数的实现。class A { public: virtual void f() = 0; }; void A::f() { cout<<"Test"<<endl; } 上面的代码是否正确? 将...

191得票11回答
为什么在C++中需要纯虚析构函数?

我了解虚析构函数的必要性,但为什么需要一个纯虚析构函数呢?在C++文章中,作者提到使用纯虚析构函数来使类成为抽象类。 但我们可以通过将任何成员函数声明为纯虚函数来使类成为抽象类。 所以我的问题是: 我们什么时候会真正地使用纯虚析构函数?能否举个实际的例子? 当我们创建抽象类时,将析构函数也...

173得票2回答
C++中的纯虚析构函数

写下这样的代码是有问题的吗:class A { public: virtual ~A() = 0; }; 对于一个抽象基类,这样至少可以在MSVC编译通过...但它会在运行时崩溃吗?

169得票11回答
为什么纯虚函数要用0进行初始化?

我们总是将纯虚函数声明为:virtual void fun () = 0 ; 也就是说,它总是被赋值为0。 我的理解是,这是将此函数的虚函数表入口初始化为NULL,而在这里使用任何其他值都会导致编译时错误。我的理解是否正确?

128得票8回答
“纯虚函数调用”崩溃是从哪里来的?

我有时会在我的电脑上注意到崩溃并出现错误信息:“纯虚函数调用”。 当一个抽象类无法创建对象时,这些程序是如何编译的呢?

82得票6回答
纯函数的好处

今天我在读有关“纯函数”的内容时,对它的使用感到困惑: 如果一个函数对于相同的输入返回相同的输出,并且没有任何可观察到的副作用,则称其为“纯函数”。 例如,strlen()是一个纯函数,而rand()则是不纯的。__attribute__ ((pure)) int fun(int i) {...

74得票3回答
将函数声明设置为0是什么意思?如何将整数分配给函数? (注:这里的“设置函数声明等于0”指的是在类中将函数声明为纯虚函数,即使用“= 0”语法。)

我正在浏览一个(不愿透露名称的)GUI工具包的源代码,它封装了Windows API,当我在窗口类中发现以下函数定义时: virtual LRESULT CALLBACK wndProc (HWND, UINT, WPARAM, LPARAM) = 0; 这里发生了什么?你如何将函数分配给整数...

71得票3回答
C++纯虚函数是否可以有函数体?

纯虚函数(当我们设置= 0)也可以有一个函数体。 如果根本不会调用纯虚函数,为什么要为其提供函数体呢?