7.34:如果我们把第256页Screen类的pos的typedef放在类的最后一行会发生什么情况?
Ans:那么所有使用pos类型的成员,都无法通过编译。
7.35:解释下面代码的含义,说明其中的Type和initVal分别使用了哪个定义。如果代码存在错误,尝试修改它。
typedef string Type;
Type initVal(); //使用了typedef string Type;
ckass Exercise {
public:
typedef double Type;
Type setVal(Type); //使用了typedef double Type;
Type initVal(); //使用了typedef double Type;
private:
int val;
};
//这个函数的返回类型是全局作用域的别名,因为它没有指明属于哪个类的。
Type Exercise::setVal(Type parm) {
val=parm+initVal();
return val;
}
修改之后:
typedef string Type;
Type initVal();
ckass Exercise {
public:
typedef double Type;
Type setVal(Type);
Type initVal();
private:
int val;
};
Exercise::Type Exercise::setVal(Type parm) {
val=parm+initVal();
return val;
}