设为首页 - 加入收藏
广告 1000x90
您的当前位置:144177黄大仙有求必应 > 静态函数 > 正文

静态成员函数怎么引用该类中的非静态成员函数

来源:未知 编辑:admin 时间:2019-05-28

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部静态成员函数可以直接引用该类的静态数据成员和静态成员函数,但不能直接引用非静态数据成员和非静态成员函数,否则编译报错。如果要引用,必须通过参数传递的方式得到对象名,然后再通过对象名引用

  我想用的静态函数是输出函数,请问例如 static void print(){cout**endl;} 请问print后面括号中的参数应该写什么

  最佳答案,感觉有些没说明白,是说静态成员函数调用了原类的普通成员函数拷贝构造函数和析构函数么?修改了下代码,大致可以看清:

  这里还有个改来的例子,原例子是讲静态成员函数调用静态成员变量的。网址:网页链接

  我在这里再构造一个普通成员函数,用静态成员函数调用它,碰到普通成员函数只能通过对象调用的问题,因此在静态成员函数中定义了一个默认值的对象(面积是0.不会计数图形个数),但是每次这个对象销毁后(即这个静态成员函数调用之后)系统会调析构函数,使图形计数减1,所以我在这里强行加1.最终编译运行是可以的,可以参考下。

  //必须在定义类的文件中对静态成员变量进行一次声明 //或初始化,否则编译能通过,链接不能通过

  再改一个版本,仿照最佳答案,在静态成员函数中参数可以是类的对象,则在函数中不再定义类的对象,直接使用对象调用类的普通成员函数。由于这样做在调用静态成员函数时会对类对象初始化,调用构造函数(调用拷贝构造函数),则会对面积加和,计数会加1,而此函数调用结束,还会调用析构函数,会将面积减小,计数减1,所以会在下面的一些函数中加一些处理。最终结果,和上面是对得上的。

  //必须在定义类的文件中对静态成员变量进行一次声明 //或初始化,否则编译能通过,链接不能通过

本文链接:http://that-a-way.com/jingtaihanshu/126.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top