这几个语句要怎么理解啊?新格式???看不懂啊
//=============================
#include <iostream>
//=============================
class IDATE{
protected:
virtual int ymd2i() = 0;
public:
virtual ~IDATE(){}
virtual IDATE& operator+(int n)=0;
virtual int operator-(const IDate& d){return ymd2i()-d.ymd2i();}
};//========================
IDATE& createDate(int y,int m,int d);
程序有删截
1.这个程序里的virtual ~IDATE(){} 这个语句怎么没有分号?
2. virtual int operator-(const IDate& d){return ymd2i()-d.ymd2i();} 这个语句里的virtual实际上是了单删除线的,不过我打不出来...这里加个删除线有什么作用?书上说是删除这个关键词,不是删除一行,这句话怎么理解,为什么要这么做? 另外这个语句等价于什么啊,看不太懂,对于operator不是很清楚
3.IDATE& createDate(int y,int m,int d); 这句里IDATE是类名,createDate是成员函数,IDATE& createDate是什么意思呢
4.一般什么时候要用到 using std::string;
[解决办法]
1.这个程序里的virtual ~IDATE(){} 这个语句怎么没有分号?
//这个不需要分号,只有class定义结束才需要分号
2. virtual int operator-(const IDate& d){return ymd2i()-d.ymd2i();} 这个语句里的virtual实际上是了单删除线的,不过我打不出来...这里加个删除线有什么作用?书上说是删除这个关键词,不是删除一行,这句话怎么理解,为什么要这么做? 另外这个语句等价于什么啊,看不太懂,对于operator不是很清楚
前面几点看不大懂,“operator”就是运算符重载 也相当一个函数,,要详细了解,找本CPP的教科书就可以了
IDATE& createDate(int y,int m,int d); 这句里IDATE是类名,createDate是成员函数,IDATE& createDate是什么意思呢
就是一个函数,返回一个IDATE类型的引用
4.一般什么时候要用到 using std::string
#include <string>
就要用到命名空间std;因为string在新的c++标准中,定义在命名空间std中,要引入命名空间才能使用string
引入的方法有三种:
1,using namespace std;
2,using std::string;
3,在每个地方std::string