我不明白为啥会出现语法错误
Posted
技术标签:
【中文标题】我不明白为啥会出现语法错误【英文标题】: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
扩展为一个空的令牌序列。你的班级没有名字。
【参考方案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
【讨论】:
以上是关于我不明白为啥会出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章