为什么我会收到带有受保护静态成员的 C2248(无法访问的成员)?

2023-11-30

假设我有:

#include <Windows.h>
#include <iostream>
#include <vector>

std::vector<int> Base::m_intList;

class Base
{
public:
    Base();
protected:
    static std::vector<int> m_intList;
};

class Derived : Base
{
public:
    Derived();
protected:
    bool fWhatever;
};

class MoreDerived : Derived
{
public:
    MoreDerived();
private:
    HRESULT DoStuff();
};

Base::Base()
{

}

Derived::Derived()
{

}

MoreDerived::MoreDerived()
{

}

HRESULT MoreDerived::DoStuff()
{
    for (auto it = m_intList.begin(); it != m_intList.end(); it++)
    {
        std::cout << *it;
    }
}

当我尝试编译它时,我得到“m_intList:无法访问类'MoreDerived'中声明的不可访问的成员”。

Question: 为什么我无法访问派生类的 DoStuff 函数中的受保护静态成员?


class Derived : Base means class Derived : private Base。私有继承的行为是:

  • protected基类的成员成为private派生类的成员。
  • private基类的成员有无法访问作为派生类的成员。

So m_intList is:

  • protected in Base
  • private in Derived
  • 无法访问 in MoreDerived

因此你的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我会收到带有受保护静态成员的 C2248(无法访问的成员)? 的相关文章

随机推荐

  • 隐式等待、显式等待、流畅等待

    隐式 显式 流利等之间有什么区别 如果我们在隐式等待中设置 10 秒 并且在 10 秒之前 则在 3 秒内只有元素被定位 到时候会发生什么 它将等待 10 秒钟或继续进行 隐式等待 隐式等待是一个配置的实现网络驱动程序实例即driver进行
  • 查看 NSCharacterSet (Swift) 中的字符[重复]

    这个问题在这里已经有答案了 当我尝试像这样列出 NSCharacterSet 中的字符时 print NSCharacterSet URLQueryAllowedCharacterSet 它不会打印出字符 而是打印出类似的内容 基于另一个答
  • SQL Server 2008,根据订单类型和订单日期时间将库存分配给销售订单数量

    我根据以下订单类型将库存先进先出分配给销售订单 DECLARE tblOrder TABLE DealerCode NVARCHAR 50 PartCode NVARCHAR 50 OrderQty INT OrderType NVARCH
  • 使用 Newtonsoft.Json 解析 json 时出现 RuntimeBinderException

    我正在尝试将简单的 json 解析为 Windows Phone 8 中的动态对象 我使用 Newtonsoft JSON 库和以下代码 dynamic response JObject Parse responseText string
  • cypress 中的条件语句

    我正在尝试在 cypress 上执行条件语句 以检查标题中的登录链接是否为 登录 或 帐户 或 类 然后单击它 if 条件不起作用 cy get header then header gt if header find Sign in le
  • 错误:文件路径太长

    我正在尝试使用 C 中的各种文件函数 例如File GetLastWriteTime 对放置在大于 Windows 7 上允许的最大路径 即 260 的路径上的文件执行复制命令 它在长路径名上给我一个错误 在 MSDN 支持上 我他们要求使
  • 我可以将 R8G8B8A8 放入 UBO 中,并将其用作 vec4 吗?

    我尝试优化工作计算着色器 它的目的是创建一个图像 找到合适的颜色 使用一个小调色板 然后调用imageStore image ivec2 vec4 颜色在 UniformBuffer 的 uint 数组中进行索引 该 UBO 中的一种颜色封
  • 通过访问路由名称参数来自动化委托权限并检查用户的权限

    我已经为 ACL 层实现了委托角色 现在 我计划自动对每个请求进行权限检查 这样每次我就不必为用户角色编写权限 例如 我有公司资源 用户角色为 管理员 他只能查看公司 另一个用户角色为 超级 可以管理公司 在数据库中 我为他们提供了适当的权
  • Android操作栏自定义图标

    I want to create Action Bar like this 我在开发指南中看到操作栏图标应该具有特定的大小 是否可以 是否可以在操作栏中添加没有可点击指示的项目 我理解您对操作栏图标大小的担忧 我也有同样的担忧 直到我发现这
  • 如何将 ezComponents 与 magento 集成

    在 本机 Zend Framework 应用程序中 我将通过将 ezComponents 的自动加载器添加到 Zends 自动加载器来启用 ezComponents autoLoader Zend Loader Autoloader get
  • 刷新node.js脚本!

    我正在从终端 mac 运行带有 node js 的脚本 当我更改脚本时 我希望能够重新运行它 而不必关闭并重新打开终端 我是 mac 新手 不知道如何执行此操作 Thanks How are you starting Node You sh
  • Python 多重处理和序列化数据

    我正在学校计算机上运行脚本multiprocessing模块 我经常序列化数据 可以用下面的代码来概括 import multiprocessing as mp import time pickle def simulation j dat
  • hibernate和mappedBy:是否可以自动设置外键而不设置对象之间的双向关系?

    Welcome 我有两门课 对话和问题 一场对话有很多问题 对话 java package com jcg jpa mappedBy import java io Serializable import java util ArrayLis
  • 将文档末尾的元素放置在页面顶部

    我有一个div就在之前文档的标签 在文档结束之前 我想使用 CSS 或 JavaScript 在页面顶部显示这个 div 我知道关于position absolute 问题是 如果我使用它 div 将显示在位于顶部的其他内容之上 而不是显示
  • Power Bi Desktop - 如何在表之间添加值?

    我正在尝试创建一个列 该列的总值介于 3 个表中的 3 列之间 我该怎么做呢 这两个表是共享一个 id 的值表 并且它们都通过 Id 链接到帐户表 目标是将 3 列相加 并将其放入按 Id 分组的表中 我尝试对它们进行求和 尝试使用 USE
  • 包含用户名数据的 AutoCompleteCustomSource 不起作用

    我正在尝试创建一个具有自动完成功能的文本框 在我的表单的构造函数中 我从数据库获取数据并设置文本框AutoCompleteCustomSource属性到用户名数组 由于某种原因 自动完成功能不起作用 我确信没有任何问题db getUsers
  • C++ 中指针的地址交换

    如何在具有签名的函数内交换指针地址 比方说 int weight height void swap int a int b 因此 在退出该函数之后 实际参数的地址 weight and height 将被改变 有可能吗 如果要交换指针指向的
  • 为什么不使用 MD5 进行密码哈希处理?

    我有一个朋友 他是白帽黑客 他说 md5 并没有那么糟糕 而且实际上非常安全 只要我们正确使用它 我相信他是对的 据我所知 有3种方法可以破解哈希值 使用彩虹表 可以通过长 随机盐来保护 碰撞 可以通过多种盐或哈希来防止 如下例所示 生成时
  • 使用cmake为vs2013配置cuda项目并得到“无效设备功能”错误

    我使用cmake gui工具在vs2013中配置我的cuda项目 CMakeLists txt如下 project CUDA PART required cmake version cmake minimum required VERSIO
  • 为什么我会收到带有受保护静态成员的 C2248(无法访问的成员)?

    假设我有 include