静态变量调用非静态函数的问题(不知道这种叫法对不对,欢迎大神围观)

CodingLife99 CodingLife99 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下是昨天遇到的一个程序的模拟版,现在的疑惑就是main.cpp中GetSBH()返回的是静态变量吗?换句话说,函数的返回值还有static属性吗?


//SBH.h
#pragma once
class SBH
{
public:
void S2B(int i);

SBH();
};


//ME.h
#pragma once
#include "SBH.h"

class ME
{
public:

static SBH * m_pSBH;
static SBH *GetSBH();

ME();
};



//ME.cpp
#include "ME.h"
#include "SBH.h"

SBH * ME::m_pSBH;

ME::ME()
{
m_pSBH = nullptr;
}


SBH *ME::GetSBH()
{
return m_pSBH;
}



//main.cpp
#include "ME.h"
#include "SBH.h"

void SBH::S2B(int i)
{
std::cout << "I am not Wrong!" << std::endl;
}

int main()
{
ME::GetSBH()->S2B(1); //此处GetSBH()返回的是静态变量吗?
return 0;
}

...全文
评论 8
收藏 已收藏
分享
返回顶部
CodingLife99
C++ 语言 65,214 成员 250,514 内容