错误:请求“this”中的成员“..”,该成员属于非类类型“--* const”

2024-02-11

我的第一个问题在这里。请原谅,我刚刚进入C++并开始使用DS。堆!!!

我的代码:我认为

    using namespace std;
    typedef char stackElement;

    class Stack
    {
    public:
        stackElement *contents;   //dynamically allocated: as we do not know what would be the size of our array.
        int top, maxSize;               // current Top index in the array

                //max size of the array; we need it to know if the array is full

    Stack(int maxSize)
    {

        contents = new stackElement(maxSize);
        this.maxSize = maxSize;
        if(contents == NULL)
        {
            cout<<"Insufficient memory";
            exit(1);

        }

        top = -1;
    }
    ~Stack()
    {
        delete [] contents;
        contents = NULL;
        maxSize = 0;
        top = -1;

    }

    bool isEmpty()const
    {

        return top < 0;
    }
    bool isFull() const
    {

        return top == maxSize - 1;
    }


    void push(stackElement element)
    {
        if(isFull())
        {
            cout<<"STACK IS ALREADY FULL";
            exit(1);
        }
        top = top + 1;
        contents[top] = element;
    }


};

int main()
{

    cout<<"STACK IMPLEMENTATION";
    int i = 1;
    Stack s1(i);


    s1.push('a');
    s1.push('1');
    return 0;
}

我收到此错误:

error: request for member 'maxSize' in 'this', which is of non-class type 'Stack* const'

如果有的话,你必须写this->maxSize = maxSize;, since this is a pointer.

但最好不要这样写,而是使用构造函数初始化列表:

  explicit Stack(int m)
  : contents(new stackElement[m]), top(-1), maxSize(m)
  {
      // nothing else to do
  }

我还添加了explicit这样你就不会意外转换5 into a Stack.

你还把数组初始化写错了。

另外,你不需要检查contents不为空:当new失败,它退出并出现异常,确实如此not返回一个空指针。 (当你从对象的角度思考时,这种行为是没有意义的。)

重要的是要注意你最多有one naked new- 构造函数中的表达式。其他任何情况都是异常安全灾难,并且表明您需要重构和使用单一职责资源管理类。


析构函数应该是:~Stack() { delete [] contents; }其他一切都是毫无意义的浪费。


想象一下你必须pay对于您编写的每一行代码。要有耐心,失去源头,思考。

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

错误:请求“this”中的成员“..”,该成员属于非类类型“--* const” 的相关文章

  • 如何使用.NET Core(FtpWebRequest)通过squid代理通过FTP获取文件?

    根据https learn microsoft com en us dotnet api system net ftpwebrequest proxy view netcore 3 1 https learn microsoft com e
  • “RouteCollection”不包含“MapMvcAttributeRoutes”的定义

    我尝试使用基于属性的路由 但是当我尝试以下代码片段来激活基于属性的路由时 我收到以下错误消息 RouteCollection 不包含定义 MapMvcAttributeRoutes 这是我的代码 public class RouteConf
  • C中函数指针的递归声明

    我想声明一个返回指向相同类型函数的指针的函数 我想用它来实现如下状态机 typedef event handler t event handler t event t compilation error event handler t st
  • 如果两个线程同时访问同一个 bool 变量会发生什么?

    我有一个跨平台 C 程序 其中使用 boost 库创建异步计时器 我有一个全局变量 bool receivedInput false 一个线程等待并处理输入 string argStr while 1 getline cin argStr
  • binary_log_types.h:没有这样的文件或目录

    我正在编译一个小型 mysql C 项目并且 遇到以下错误 C Program Files x86 MySQL MySQL Server 5 7 include mysql com h 22 30 fatal error binary lo
  • 当 f & g 修改同一个全局变量时,表达式 f() > g() 的值是否未定义或未指定?

    UPDATE 由用户标记ecatmur 它是重复的在 C99 中 f g 是未定义还是只是未指定 https stackoverflow com questions 3951017 in c99 is fg undefined or mer
  • WPF Dispatchertimer 延迟反应/冻结

    在我的 WPF 应用程序中 我使用 3 个不同的 DispatcherTimers 一种是用于显示当前时间 一种是每 5 秒运行一次数据库查询 第三个每 1 秒刷新一次自定义按钮的值 当我的程序运行时 有很多延迟 冻结 例如 时间开始正确计
  • 计算复杂数组的abs()值的最快方法

    我想计算 C 或 C 中复杂数组元素的绝对值 最简单的方法是 for int i 0 i lt N i b i cabs a i 但对于大向量来说 速度会很慢 有没有办法加快速度 例如使用并行化 语言可以是 C 或 C 鉴于所有循环迭代都是
  • 通过用于 Symbol 条码扫描仪 DS4208 的 SNAPI.dll API 捕获图像

    我想通过 SNAPI API 从 Symbol 目前为 Zebra 条形码扫描仪 DS4208 型号 我们还使用 Zebra 的另一个但兼容的型号 捕获图像 条形码捕获 识别效果很好 但看起来像SnapiDLL SNAPI SnapShot
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • 为什么我不能从对中返回 unique_ptr?

    为什么我不能从对中返回 unique ptr include
  • 从套接字读取 C HTTP

    我想知道如何判断是否已从套接字接收到所有数据 这是一个简单的网络代理 现在我正在处理请求部分 所以发送的内容应该以 r n r n 结尾 我不知道请求会持续多久 我在这里读过一些帖子 说我应该检查读取函数是否返回 0 但其他人说0只在客户端
  • 如何删除实体框架6中的多对多关系

    如果将项目连接为多对多关系 则从数据库中删除项目时会出现问题 我的数据库看起来像 Project lt JobInProject gt Job ProjectID JobInProjectID JobID ProjectID JobID 主
  • 我可以在 C++ 中重写非虚函数吗

    我想知道我可以重写 C 中的非虚函数吗 因为我在使用 C 时发现了这个问题override关键字我的代码如下 class A public void say cout lt lt From A n class B public A publ
  • 为什么我无法调试动态加载的程序集?

    我正在开发一个 Web API 项目 该项目使用内部模拟框架 允许拦截和修改来自控制器的响应 它使用 MEF 加载包含某些先决条件匹配时执行的代码的程序集 我知道这是正常工作的 因为我可以在响应中看到模拟已被执行 但由于某种原因我无法调试动
  • C++:LPWSTR 在 cout 中打印为地址

    我有一个类型变量LPTSTR 我打印到std cout with lt lt 在 ANSI 系统中 不知道它是在哪里确定的 它工作得很好 它打印了字符串 现在 在 Unicode 系统中 我得到的是十六进制地址而不是字符串 那么 为什么LP
  • C# 3.0 中自动属性和公共字段的区别

    我无法理解为什么 C 3 0 中存在自动实现的属性语言功能 当你说的时候有什么区别 public string FirstName than public string FirstName get set 因为它们在生成的 IL 代码 和机
  • 在Framework 4.6项目中使用.net core DLL

    我已经在 net core 2 0 中构建了一个 DLL 现在我想在使用 net 4 6 1 框架的 WinForms 项目中使用它 我可以引用该 dll 但收到 System IO FileLoadException 表示找不到 Syst
  • char[length]初始化并处理

    我定义了一个字符数组 char d 6 如果我在以下方面有误 请纠正我 此时没有为变量分配内存d 现在我要初始化它 d aaaaa 这种初始化之后 就不需要释放内存了 它将自动完成 我怎么知道是否char 被初始化了吗 我正在寻找类似的模式
  • 如何使用 Ioc Unity 注入依赖属性

    我有以下课程 public interface IServiceA string MethodA1 public interface IServiceB string MethodB1 public class ServiceA IServ

随机推荐

  • pandas KeyError,使用浮点数时找不到索引

    我遇到以下问题 import pandas as pd import numpy as np df pd DataFrame np random rand 401 index np linspace 0 1 401 print np lin
  • 通过VBA插入Excel公式

    作为另一个问题的延续 我试图解决通过 VBA 在宏上插入公式的问题 这是我的代码 Range F1 Select ActiveCell Formula IF C1 LPPD MIPRU IF C1 LPGR DCT IF OR C1 LPF
  • Grails 中具有一个域类的依赖下拉菜单

    因此 我有一个域类 它有很多字段 我在 GSP 中准备了五个下拉菜单 并且数据在任何下拉菜单的 onChange 上正确过滤 但存在问题 对于在下拉列表中选择的几组组合 我们在数据库中没有数据 并且这些组合不是固定的 所以 我在想是否有可能
  • 如何将 asp:SiteMapPath 的输出转换为列表?

    我对 NET 和 VB NET 都非常不熟悉 不太清楚如何做到这一点 假设我有这样的代码 div class breadcrumb div
  • WPF 在 InitializeComponent 期间获取 Control null 引用

    So my InitializeComponentWindow 构造函数中的方法调用通过 XML 运行并添加控件并将它们插入到事件中 因此 当其中一个控件的属性发生更改时 它会调用订阅该事件的方法 该方法引用尚未构建的控件 为什么这里会按这
  • 如何在c中绘制直方图

    如何在 c 中从 2 个数组绘制直方图 您可以用这个字符 来表示图表中的计数 这是一个可以打印的字符 printf c char 254u 考虑一些随机的float arr and hist保存计数的数组 Code Function gen
  • 越野车弹跳球

    我在处理中制作碰撞球草图时 遇到了一个奇怪的错误 尽管有从墙上弹起的条件 有些球粘在上面 我在这里找不到错误的根源 有人可以帮忙吗 我还意识到可能很少 很多 糟糕的编码实践 但我事先道歉 我在下面发布代码 1 主要 https pasteb
  • Webpack / ES6:如何导入样式表

    我看到像 bootstrap 这样的存储库开始在它们的中包含额外的标签package json 文件 例如 style 和 less https github com twbs bootstrap blob v4 0 0 alpha 2 p
  • 在文本区域“内部”加粗文本

    我有一个文本区域 myarea我正在其中输入文本 我已经输入了这段文字 这是一个句子 只有这个词 最终会被加粗 现在我的侧面有一个按钮 就像一个粗体按钮 我想选择想要加粗的字母 单击按钮 然后看到这些字母在文本区域内变成粗体 它与许多编辑器
  • UITableViewCell - 如何在重用之前重置内容

    有一个烦人的错误我无法修复 我有一个CustomCell 其中我有一个子视图 可以根据对象的值更改其颜色 UITableViewCell tableView UITableView tableView cellForRowAtIndexPa
  • 如何使用 jQuery 选择的插件重置表单?

    我有一堆select元素的形式为我正在使用 Jquery Chosen 插件 https github com harvesthq chosen 如何重置表格 以下不起作用
  • Three.js 图块具有使用平面几何的多个纹理

    所以我正在尝试构建一个由图块组成的基于 3D 的世界 我已经成功地使用平面几何和高度值等做到了这一点 但现在我已经到了我可能必须改变一切的地步 问题是我希望一个图块具有多个纹理 使用着色器 因为我想混合它们 我能够在全球范围内执行此操作 因
  • 获取任意变换的 MatrixTransform

    我在 WPF 堆栈中工作 我希望能够为任何 Transform 获取 MatrixTransform 根据链接here http msdn microsoft com en us library system windows media t
  • Swing 数据绑定框架

    几乎同样的问题被问过year ago https stackoverflow com questions 510655 jgoodies binding vs jsr 295 但是这方面已经有了一些新的发展 为 Swing 应用程序选择一个
  • 尝试获取 PDO 中非对象的属性

    首先 我知道这可能是一个重复的问题 但我做了一些搜索 例如这个问题 https stackoverflow com questions 5891911 trying to get property of non object in但我不明白
  • 将 xml 转换为 json 以将文件处理为 Bigquery

    我想将 stackexchange 原始数据处理到 BigQuery 中 但首先数据使用 7z 压缩格式 因此我解压缩数据以将其移植为 gz 格式 但内部文件是 xml 所以我需要将文件从 xml 转换为 json 有任何想法吗 我使用 p
  • 我如何使用 Objective C 中的照片框架从图库访问照片

    我是照片框架的新手 我不知道如何使用它 我使用了很多链接 但我很困惑如何在 imageview 中显示图像 我想使用我正在尝试的照片框架从图库中获取所有照片 NSMutableOrderedSet recentsDataSource PHF
  • 仅使用 hashKey 查询 dynamoDB

    我想仅使用 Hashkey 查询我的 dynamoDB 我的表 名称 testTable 架构如下 字符串自动ID HashKey 字符串 AlexandriaID RangeKey 字符串文档类型 我的 dynamoDBQueryExpr
  • 为什么 bytes.fromhex() 会奇怪地处理某些十六进制值?

    我正在尝试使用Python中的套接字库将两个十六进制数字的字节发送到一个编程为接受它们的硬件 要从用户输入的十六进制数字字符串创建字节 我尝试使用bytes fromhex 描述的方法here https docs python org d
  • 错误:请求“this”中的成员“..”,该成员属于非类类型“--* const”

    我的第一个问题在这里 请原谅 我刚刚进入C 并开始使用DS 堆 我的代码 我认为 using namespace std typedef char stackElement class Stack public stackElement c