Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误C2064:term不计算为具有1个参数和递归问题的函数_C++ - Fatal编程技术网

C++ 错误C2064:term不计算为具有1个参数和递归问题的函数

C++ 错误C2064:term不计算为具有1个参数和递归问题的函数,c++,C++,首先,我已经把我的代码上传到了粘贴站,下面的链接供有兴趣的人使用。我遇到的问题正如标题所说,但更多的是如何将局部字符串变量从函数传递到全局变量对象的问题。我在网上搜索了好几个小时,我的解决方案是通过引用传递,这很好,但实际上,将它应用到我的代码中,让我感到困惑,并且浪费了很多时间。这总结了我的第一个问题,第二个问题与我创建的构造函数有关,由于某种原因,这些构造函数是递归的,尽管我没有调用函数中的任何函数。这个错误让我完全陷入了困境(没有双关语的意思)。无论如何,任何帮助都是非常感谢的,我可以根据

首先,我已经把我的代码上传到了粘贴站,下面的链接供有兴趣的人使用。我遇到的问题正如标题所说,但更多的是如何将局部字符串变量从函数传递到全局变量对象的问题。我在网上搜索了好几个小时,我的解决方案是通过引用传递,这很好,但实际上,将它应用到我的代码中,让我感到困惑,并且浪费了很多时间。这总结了我的第一个问题,第二个问题与我创建的构造函数有关,由于某种原因,这些构造函数是递归的,尽管我没有调用函数中的任何函数。这个错误让我完全陷入了困境(没有双关语的意思)。无论如何,任何帮助都是非常感谢的,我可以根据请求尝试详细阐述我的问题,但它确实应该是直接的代码发布


这是一个递归构造函数

Date::Date()
{
    Date Date;
    Date.year=0;
    Date.day=0;
    Date.month="";
}
构造对象时调用构造函数。在这个构造函数中,您首先要做的是什么?构造一个对象!因此递归。你想写的是

Date::Date()
{
    year=0;
    day=0;
    month="";
}
您还犯了一些类似的错误,这些错误似乎都与对成员变量如何工作的误解有关。比如这个

    static string Date::getMonth();
应该是这个吗

    string getMonth();
string Date::getMonth()
{
        return month;
}
还有这个

string Date::getMonth()
{
        Date Date;
        return Date.month;
}
应该是这个吗

    string getMonth();
string Date::getMonth()
{
        return month;
}
setMonth需要进行类似的更改

恐怕我不理解你关于全局对象和局部对象的问题,但是考虑到你的误解,我很确定这是假的。进行上述更改(和setMonth),然后查看您的位置。在C++的书中重读有关对象的适当章节也是一个好主意。

当你编写例如

return Date.month;
您正在尝试访问
month
成员,不是对象的成员,而是直接在类中访问。这将不起作用,因为成员在类中声明,但存在于对象中

如果要访问当前对象中的成员,则不需要为其添加前缀,只需使用它:

return month;

大家好,欢迎来到stackoverflow.com。如果您有关于编译器错误的问题,请在问题中包含完整且未编辑的错误消息。另外,请在您的问题中包括相关的代码行,显示哪些代码行与哪些错误相关。更正,我道歉…“不是一个真正的问题”,真是一个笑话。这个问题很具体,得到了两个合理的答案。也许我们应该有一个“关闭,因为OP把他的代码放在了pastebin”类别。嗯,谢谢你抽出时间,我为糟糕的格式/编码技能道歉。@Mark无需道歉。我们都是初学者。看,这让我很困惑。当您返回month Date.getMonth时,调用它不会在main中返回month。这就是为什么我不断尝试强制Date.month接受我试图提供的输入。