gpt4 book ai didi

c++ - clang 不识别 protected 数据成员

转载 作者:行者123 更新时间:2023-11-28 01:47:46 26 4
gpt4 key购买 nike

<分区>

我正在将一些遗留代码从 MS visual studio 移植到 Clang 并遇到 protected 数据成员的问题。简而言之,我的问题是:

template<typename T>
class Base : public SuperBase<T> {
public:
Base(std::shared_ptr<Widget<T>> const& sb) : sb_(sb) {}

protected:
std::shared_ptr<Widget<T>> sb_;
}

template <typename T>
class Derived : public Base<T>
{
public:
Derived(std::shared_ptr<Widget<T>> const& sb) : Base<T>(sb) {}

double method(void) const { return sb_->number(); }
}

这在 MSVC++ 下编译得很好,但在 Clang 下就不行。 Clang 提示:

使用未声明的标识符 sb_。

遵循 Meyers Effective C++ 我不怎么使用 protected 并且可以重写代码不使用,但我仍然想知道为什么 Clang 在这里提示,因为 Derived 类应该能够看到 Base 类的 protected 成员。我错过了什么?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com