gpt4 book ai didi

c++运算符函数内未声明的标识符

转载 作者:行者123 更新时间:2023-11-30 01:27:23 25 4
gpt4 key购买 nike

我正在用 C++ 创建一个“日期”类,它包含日、月、年变量和一堆运算符函数。

我的类有一个 date.h 头文件和 date.cpp,date.cpp 中的一个运算符函数给我一堆错误。

日期.cpp(我希望这个运算符函数计算添加的天数并返回一个新的日期对象并避免更改原始日期对象。)

date date::operator+(long days) const{

date dTemp( date.getDay(), date.getMonth(), date.getYear() );

for(int i=0;i<days;i++){

//If days go over a months day count.
if(dTemp.getDay() >= daysInMonth[dTemp.getMonth()]){
dTemp.setDay(1);
if(dTemp.getMonth() < 12){
dTemp.setMonth(dTemp.getMonth() + 1);
}
else{
//Changing a year.
dTemp.setMonth(1);
dTemp.setYear(dTemp.getYear() + 1);
}

}
else{
dTemp.setDay(dTemp.getDay() + 1);
}
}
return dTemp;
}

错误:

1>h:\c++\teht21\teht20\date.cpp(74): error C2143: syntax error : missing ')' before '.'
1>h:\c++\teht21\teht20\date.cpp(74): error C3484: syntax error: expected '->' before the return type
1>h:\c++\teht21\teht20\date.cpp(74): error C2061: syntax error : identifier 'getDay'
1>h:\c++\teht21\teht20\date.cpp(79): error C2065: 'dTemp' : undeclared identifier
1>h:\c++\teht21\teht20\date.cpp(79): error C2228: left of '.getDay' must have class/struct/union
1> type is ''unknown-type''

第 74 行是:

date dTemp( date.getDay(), date.getMonth(), date.getYear() );

非常感谢任何帮助。如果您需要查看更多代码,请告诉我。

最佳答案

如果 getDay()getMonth()getYear() 是成员函数并且您想在 this 上调用它们 然后改变:

date dTemp( date.getDay(), date.getMonth(), date.getYear() );

到:

date dTemp( getDay(), getMonth(), getYear() );

关于c++运算符函数内未声明的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9017279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com