【问题标题】:I do not understand why it comes up with a syntax error我不明白为什么会出现语法错误
【发布时间】:2017-10-31 17:55:08
【问题描述】:

我正在用 c++ 类编写程序,但我不明白为什么这个语法错误是未定义分号。如果你需要我发送stacktrace,我会放在评论部分。我在这个 H 类中有多个错误。我是 C++ 的新程序员。感谢您的贡献。

#pragma once
#ifndef CONVERT_M_TO_FT_H
#define Convert_M_to_Ft


class Convert_M_to_Ft {
private:
    double feet, meters, inches, centimeters;
    const double METERS_PER_FOOT;
    const double INCHES_PER_FOOT;
public:
    Convert_M_to_Ft();
    void conversion();
    void setFeetAndInches(double feet, double inches);
    double getMeters();
    double getCentimeters();
};
#endif

【问题讨论】:

  • #define Convert_M_to_Ft ----> #define CONVERT_M_TO_FT_H。您设置它的方式有 Convert_M_to_Ft 扩展为一个空的令牌序列。你的班级没有名字。

标签: c++ windows visual-studio visual-c++


【解决方案1】:

替换

#define Convert_M_to_Ft

#define CONVERT_M_TO_FT_H

问题是预处理器扩展了

class Convert_M_to_Ft {
private:
   //...
};

class {
private:
   //...
};

否则。

【讨论】:

  • 你在开玩笑吧。
  • @jdog1218 “你在开玩笑吗” 嗯??当然不是。这正是您的代码所发生的情况。出了什么问题?
【解决方案2】:

因为你:

#define Convert_M_to_Ft

这意味着Convert_M_to_Ft 将在您的代码中转换为空。特别是这一行:

public:
    Convert_M_to_Ft();

将转换为:

public:
    ();

这可能就是您的语法错误的来源。如果这不是唯一的错误,您应该在实际行号中包含实际错误。

您可能打算在顶部执行此操作:

#pragma once
#ifndef CONVERT_M_TO_FT_H
#define CONVERT_M_TO_FT_H

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多