相关疑难解决方法(0)

基类中的静态变量是否由所有派生类共享?

如果我有类似的东西

class Base {
    static int staticVar;
}

class DerivedA : public Base {}
class DerivedB : public Base {}
Run Code Online (Sandbox Code Playgroud)

都将DerivedADerivedB共享相同的staticVar或者他们每人将获得自己?

如果我想让他们各自拥有自己的,你会建议我做什么?

c++ inheritance static

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

什么是C++ Mixin-Style?

我刚刚遇到过这个关键字C++ Mixin-Style,有谁知道这是什么?

这篇文章中,已被回答为一种设计模式.它是否与本文档中描述的设计模式相同?

c++ mixins

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

MSVC constexpr 编译器错误?

环境:VS 2019,v16.4.3 w/c++17 + 最新开关

以下代码标准是否正确,还是我做错了什么?它使用最新的 gcc/clang 编译器可以正常编译,但在 MSVC 上失败。(请参阅下面的错误消息)

template<typename T>
struct mixin {};

struct thing : mixin<thing>
{
    constexpr explicit thing(int value) : value_(value) {}

    constexpr int value() const { return value_; }

private:
    int value_ = 0;
};

template<typename T>
constexpr auto do_mixin_thing(mixin<T> const& m)
{
    return static_cast<T const&>(m).value() * 10;
}

int main()
{
    constexpr thing t1{ 10 };

    // this works
    static_assert(t1.value() == 10);

    // this fails
    static_assert(do_mixin_thing(t1) == 100);
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

error C2131: expression …
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++ constexpr c++17

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

Qt:继承导致不明确

我有以下案例:

class A: public QObject

class B: public A, public QThread
Run Code Online (Sandbox Code Playgroud)

那么继承歧义就会发生,因为 QObject 被继承了两次......这个问题有解决办法吗?

c++ qt

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

标签 统计

c++ ×4

c++17 ×1

constexpr ×1

inheritance ×1

mixins ×1

qt ×1

static ×1

visual-c++ ×1