社区
C++ 语言
帖子详情
请问如何在static成员函数中调用非static成员函数?
sharc
2005-10-29 03:02:31
请给一下代码实现。static成员函数必须是inline吗?
...全文
396
5
打赏
收藏
请问如何在static成员函数中调用非static成员函数?
请给一下代码实现。static成员函数必须是inline吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sinall
2005-10-29
打赏
举报
回复
你需要知道的是“static成员函数没有this指针”。
那么如何调用非static成员函数呢?
你可以把你的static成员函数,看作和这个类不相干的函数看待!
这样,你可以传递对象指针,对象引用,都可以。
xiaocai0001
2005-10-29
打赏
举报
回复
看看下面这段代码:
在Static函数里用成员对象.
#include <iostream.h>
class AType
{
int a;
public:
AType();
~AType();
static void Show(AType &at);
};
AType::AType()
{
a=10;
cout<<"AType Constructor Called.\n";
}
AType::~AType()
{
cout<<"AType Disconstructor Called.\n";
}
void AType::Show(AType &at)
{
cout<<at.a<<endl;
cout<<"Static Show() Called.\n";
}
int main()
{
AType at;
AType::Show(at);
return 0;
}
sankt
2005-10-29
打赏
举报
回复
不一定
wzjall
2005-10-29
打赏
举报
回复
这好象不可以吧
xiaocai0001
2005-10-29
打赏
举报
回复
static成员函数必须是inline
------------------------
不必是~
请问如何在static成员函数中调用非static成员函数?
--------------------------------------
由于在使用static成员函数时, 并没有this指针, 所以, 在Static成员函数中, 需要传入非成员函数的对象.(我是这么理解的)
《c语言深度解析》第3、4章 存储类、生命周期、作用域、链接域,指针与函数
课程内容:第3章:存储类与auto、
static
、register关键字指令、常量、变量的生命周期变量与函数的作用域链接域与extern、
static
关键字声明的意义第4章:存储空间、符号、地址一级指针与多级指针野指针与段错误void *指针类型const与指针函数指针 函数
调用
—栈的使用过程回调函数和函数指针数组指针与函数传参递归函数内联函数
为什么
static
成员函数
不能访问
非
static
变量, 不能
调用
非
static
成员函数
?
为什么
static
成员函数
不能访问
非
static
变量, 不能
调用
非
static
成员函数
? 这个很好理解,
static
成员函数
成员函数
属于类, 独立于对象而存在, 不依赖于对象。 而
非
static
成员函数
、成员变量是依赖于对象的。 所以, 如果没有对象, 你用
static
成员函数
去访问
非
static
成员函数
、成员变量, 那不是在扯淡么? 所以,
static
成员函数
C++类
static
成员函数
的
调用
class
中
的静态
成员函数
作用再整个类的内部,对应类的所有实例是共享静态
成员函数
的,在
调用
静态
成员函数
的时候跟
调用
非
静态
成员函数
是有区别的。另外,静态
成员函数
只能访问对应类内部的静态数据成员,否则会出现编译错误,下面举个例子来描述下。 class box{ private: int _non_
static
;
static
int _
static
; public: int a(){ return _no...
C++
中
的
static
成员函数
以及
static
成员变量详解
static
成员变量,在编程
中
我们时常都会遇到,那么你是否对
static
变量以及
static
成员函数
有一定深入的认识呢?
static
定义的成员变量,存储的区域是内存四区(栈区、堆区、全局区、代码区)
中
的全局区,在程序运行之前就已经生成在全局区
中
,直到程序运行结束才会被系统释放。 在C++
中
有时会定义一些
static
变量,同时也会定义一些
static
成员函数
。对于
static
成员函数
以及属性的
调用
需要注意的点有以下几个: 1.
static
成员函数
的
调用
的成员变量(属性)只能够是
static
成员属性,不能够调
非
static
成员函数
可访问
static
态
成员函数
/成员;
static
成员函数
不能访问
非
static
成员函数
/成员,只能访问
static
成员函数
/变量
1、
static
成员函数
不能访问
非
static
成员函数
/成员,只能
static
成员间相互访问: //.h class A { public:
static
func1() // 编译出错 { menber1 = 1; }
static
func3() { cout<<"abc"<<endl; }
static
func2() ...
C++ 语言
64,700
社区成员
250,492
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章