1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。
#define SECONDS_PER_YEAR(60*60*24*365)UL
应该意识到表达式将使一个16位机的整形数溢出,因此要用到长整型符号L,表达式中UL表示无符号长整型。
2.写一个“标准”宏MIN,这个宏输入连个参数并返回较小的一个。
#define MIN(A,B) ((A)<=(B)?(A):(B))
懂得在宏中小心的吧参数用括号扩起来
3.C++中的空类默认产生那些类成员函数?
Class Empty
{ public:
};
答案:对于一个空类,编译器默认产生4个成员函数:默认构造函数,析构函数,拷贝构造函数和赋值函数
4. 如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为 C 。
A. myclass operator++();
B. myclass& operator++();
C. myclass operator++( int );
D. myclass& operator++( int );
解析:B为前++的表达,后++为了与前++区别开来才多加的一个参数int并没有什么特殊的意义,只是调用的时候传个0或其他的整数就可以调用后++。至于为什么后++返回的不是引用,这就要看后++的实现了。代码如下: