请教静态成员作为成员函数的实参的问题?

danielhf 2003-08-30 03:43:27
引自c++ primer:
class foo
{
private:
int var;
static int stVar;
public:
int mem1(int=var); //错误
int mem2(int=stVar); //OK
};
int=var 这种参数的写法从没见过,不知道是什么意思? 和int var有什么不同?
有没有等价的写法?
...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
danielhf 2003-09-01
  • 打赏
  • 举报
回复
529页,第四篇 第十三章第五节
piliang 2003-09-01
  • 打赏
  • 举报
回复
int mem1(int=var);
是想给函数的参数设置默认值,但var 是一变量,不能作为默认值
这种省略变量名的形式只能在函数声明中使用,在定义中不可以

而int mem2(int=stVar); 中stVar为静态变量 ,编译器会为其预留一个位置。一个静态变量,
类只会为其维护一个实例,待stVar赋值后,编译器会将其填到默认值位置。
Peterwby 2003-09-01
  • 打赏
  • 举报
回复
int = var 等于 int a = var (a是随便一个变量)。有时候int这个参数我们目前并不需要用到,但以后可能有用,就先声明一个int留在那里,占个位子,这时候可以把形参省略掉(大概是这样吧?不知有没有讲错)
xiao_potato 2003-09-01
  • 打赏
  • 举报
回复
在 c++ primer 哪一页,我翻翻

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧