【问题标题】:expected primary-expression before ';' token and expected unqualified-id before '=' token [closed]';' 之前的预期主表达式'='令牌之前的令牌和预期的不合格ID [关闭]
【发布时间】:2022-01-02 22:06:57
【问题描述】:

我在 C++ 中创建了两个类 一家叫compte,另一家银行

class compte
{
    public:
        compte();
        compte(long,float);
        virtual ~compte();

        long Getnum() { return num; }
        void Setnum(long val) { num = val; }
        float Getsolde() { return solde; }
        void Setsolde(float val) { solde = val; }
        void deposerArgent(float);
        void retirerArgent(float);
        virtual void afficher ();
         protected:
        long num;
        float solde;
};

另一个是银行:

class banque
{
    public:
        banque();
        virtual ~banque();
        string Getnom() { return nom; }
        void Setnom(string val) { nom = val; }
        string Getlieu() { return lieu; }
        void Setlieu(string val) { lieu = val; }
        list<compte*> Getcompte() { return compte; }
        void Setcompte(list<compte*> val) { compte = val; }
    protected:
    private:
        string nom;
        string lieu;
};

但我在 banque 类的以下行中遇到 2 个错误 list&lt;compte*&gt; Getcompte() { return compte; }:

expected primary-expression before ';' token

expected unqualified-id before '=' token

【问题讨论】:

  • banque 类的对象如何知道compte 是什么?也许您缺少compte* c 成员?
  • @rturrado 包含在其中
  • 我正在使用代码块的问题,每次我从 File->new-> 类创建一个类时,我都会收到此错误。换句话说,我不逐字逐句我只是输入属性
  • 您只有nomlieu 成员。请包含一个最小的可重现示例。

标签: c++ class compiler-errors


【解决方案1】:

来自banque 的方法无法访问任何名为compte 的变量。这既不是您的类的属性,也不是参数,也不是全局变量。

您可以阅读这篇文章的答案以了解 unqualified-id 是什么:

What are qualified-id/name and unqualified-id/name?

实际上,在您显示的代码中,compte 是类名,而不是变量。这意味着compte 代表一个类型(就像std::stringint 一样),而不是一个值。包含它只会使类声明可见。

我只是在这里猜测,但您可能需要在您的类 compte 中添加类型为 compte 的属性 banque(您可能需要重命名它们以避免混淆)。

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多