相关疑难解决方法(0)

C++虚拟/纯虚拟解释

如果将函数定义为虚拟并且与纯虚拟函数相同,这究竟意味着什么?

c++ virtual

327
推荐指数
7
解决办法
24万
查看次数

函数声明后=删除的含义

class my_class
{
    ...
    my_class(my_class const &) = delete;
    ...
};
Run Code Online (Sandbox Code Playgroud)

= delete在这种情况下意味着什么?

还有其他"修饰符"(除了= 0= delete)吗?

c++ declaration function delete-operator c++11

224
推荐指数
6
解决办法
10万
查看次数

对于默认构造函数和析构函数,"= default"与"{}"有什么不同?

我最初发布这个只是关于析构函数的问题,但现在我正在添加对默认构造函数的考虑.这是原始问题:

如果我想给我的类一个虚拟的析构函数,但是与编译器生成的析构函数相同,我可以使用 =default:

class Widget {
public:
   virtual ~Widget() = default;
};
Run Code Online (Sandbox Code Playgroud)

但似乎我可以通过使用空定义减少输入来获得相同的效果:

class Widget {
public:
   virtual ~Widget() {}
};
Run Code Online (Sandbox Code Playgroud)

这两种定义的行为方式有何不同?

根据此问题的回复,默认构造函数的情况似乎相似.鉴于析构函数的" =default"和" {}"之间的含义几乎没有差异,默认构造函数的这些选项之间的含义几乎没有差别吗?也就是说,假设我想创建一个类型,其中该类型的对象将被创建和销毁,为什么我要说

Widget() = default;
Run Code Online (Sandbox Code Playgroud)

代替

Widget() {}
Run Code Online (Sandbox Code Playgroud)

如果在原始帖子违反某些SO规则后延长此问题,我深表歉意.为默认构造函数发布一个几乎完全相同的问题让我觉得不太理想.

c++ user-defined-functions default-constructor deleted-functions c++11

151
推荐指数
3
解决办法
3万
查看次数

纯虚函数与身体的用例?

我最近才知道,在C++中,纯虚函数可以选择有一个体.

这些功能的实际用例是什么?

c++ virtual-functions

47
推荐指数
5
解决办法
2万
查看次数

c ++:const = 0的方法原型的代码解释

我带着一段我不理解的代码的类声明:

class Weapon
{
  public:
    virtual void attack() const = 0;
};
Run Code Online (Sandbox Code Playgroud)

const = 0部分是什么意思?

c++ virtual

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

我收到错误:无法将变量“a”声明为抽象类型“A”

这是我的代码:

#include <iostream>

using namespace std;

class Base
{
    public:
        virtual void Sub1() = 0;
        virtual void Sub2();
        virtual void Sub3();
        void Sub4();
};

class A : public Base
{
    public:
        void Sub2();
        void Sub4();
};

class B : public A
{
    public:
        virtual void Sub1();
        void Sub2();
};

class C : public Base
{
    public:
        virtual void Sub1();
        virtual void Sub4();
};

void Base::Sub2()
{
    cout << "Hello from Base::Sub2()" << endl;
}

void Base::Sub3()
{
    cout << "Hello …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance abstract-class

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