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;

}

 

 posted on 2018-08-21 15:45  linlh  阅读(163)  评论(0编辑  收藏  举报