抱歉,我很喜欢编程,需要帮助,所以我可以继续我的其他任务。 这是我的计划如下:
#include<iostream>
#include"date.h"
#include<string>
using namespace std;
int main()
{
//string thurs;
Date myDate(thurs,12,2014);
cout<<"Day is: "<<myDate.getDay()<<endl;
cout<<"month is: "<<myDate.getMonth()<<endl;
cout<<"month is: "<<myDate.getYear()<<endl;
}
在哪里说“thurs”它说它是未声明的,我试图声明它但它仍然没有解决我的问题,这就是为什么我评论它。
这是我的班级,我不确定这是不是问题:
#include<iostream>
using namespace std;
class Date
{
private:
string day;
int month;
int year;
public:
Date(string day,int month,int year); //Param Constructor
void setDay(string);
void setMonth(int);
void setYear(int);
string getDay();
int getMonth();
int getYear();
};
最后是我的Setters / Getters,不确定这可能是问题所在:
#include"date.h"
Date::Date(string day,int month, int year)
{
this->day=day;
this->month=month;
this->year=year;
}
//getters
string Date::getDay()
{
return day;
}
int Date::getMonth()
{
return month;
}
int Date::getYear()
{
return year;
}
//Setters
void Date::setDay(string d)
{
day=d;
}
void Date::setMonth(int m)
{
month=m;
}
void Date::setYear(int y)
{
year=y;
}
目前它显示除了“thurs”之外的所有内容 - 任何帮助和抱歉可怕的布局&gt;。&lt;
答案 0 :(得分:4)
在C ++中,字符串文字必须用双引号"
括起来,所以你可以这样做:
// Note "thurs" instead of thurs
Date myDate("thurs", 12, 2014);
或者你可以这样做:
string thurs = "thurs"; // Initialize a std::string with string literal "thurs"
Date myDate(thurs, 12, 2014); // Pass std::string instance
作为旁注,当你想要传递不便宜的参数(例如不是int
,而是像string
)和这样的参数本地副本,请考虑从值中传递值std::move()
,例如:
Date::Date(string d, int m, int y)
: day( std::move(d) )
, month(m)
, year(y)
{ }
void Date::setDay(string d)
{
day = std::move(d);
}
另请注意,由于getter不会修改Date
的内部状态,因此您可能希望将其标记为const
:
string Date::getDay() const
{
return day;
}
int Date::getMonth() const
{
return month;
}
int Date::getYear() const
{
return year;
}
答案 1 :(得分:1)
尝试
Date myDate("thurs",12,2014);
请注意,parens在这里完全不同 - 将变量名称改为字符串。
答案 2 :(得分:0)
您需要定义字符串变量,如string thurs("literal");
答案 3 :(得分:0)
行
Date myDate(thurs,12,2014);
应该是
Date myDate("thurs",12,2014);
祝你好运!