s1之前的预期主要令牌

光滑的霍姆斯

我是qt创作者的新手。gui.cpp中存在错误

24:错误:'s1'之前的预期主表达式n = string1 :: len(QString s1);

gui.cpp

#include "gui.h"
#include "ui_gui.h"
#include "string1.h"

gui::gui(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::gui) {
    ui->setupUi(this); }

gui::~gui() {
    delete ui; }

void gui::on_pushButton_clicked() {
    QString q1;
    string1 *s1;
    int n;
    q1=ui->lineEdit->text();
    s1=new string1(q1);
    n=string1::len(QString s1);
    ui->lineEdit_2->setText(q1); }

h

#ifndef GUI_H
#define GUI_H

#include <QMainWindow>
#include<string1.h> namespace Ui { class gui; }

class gui : public QMainWindow {
    Q_OBJECT

public:
    explicit gui(QWidget *parent = 0);
    ~gui();

private slots:
    void on_pushButton_clicked();

private:
    Ui::gui *ui; };

#endif // GUI_H

字符串1.cpp

#include<string1.h>

string1::string1(QString q1) {
    q=q1; } string1::string1() {
    q=" "; }

int string1::len(QString *s) {
    int i=0;
    while(s[i]!=0)
    {
        i++;
    }
    i--;
    return i; }

字符串1.h

#ifndef STRING1_H
#define STRING1_H

#include<qstring.h>
#include<gui.h>


class string1 {
    QString q;

public:
    friend class gui;
    string1 *s1;
    string1();
    string1(QString q1);
    int len(QString *s);

};

#endif // STRING1_H
逻辑资料

错误是由引起的n=string1::len(QString s1);,它是QString s1参数列表内部的声明您可能从string1.cpp复制了函数声明,将参数名称更改为参数名称,但是忘记删除该类型。但它仍然无法正常工作,string:::len是不是static

确定需要s1动态分配吗?它是局部变量,您delete在函数结束之前忘记了如果您使用动态分配string1只是为了string1::len避免复制而传递它,请使用google C ++参考。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章