静态成员函数不可以访问类中的成员变量
静态成员函数不可以访问类中的普通变量。请问“访问”这个词不能改变普通变量的值,那么可不可以输出普通变量呢?直接cout<<普通变量;可以吗??...
静态成员函数不可以访问类中的普通变量。请问“访问”这个词 不能改变普通变量的值,那么可不可以输出普通变量呢?直接cout<<普通变量;可以吗??
展开
2个回答
展开全部
访问的意思就是读或者写,输出属于读出行为,自然不行。
静态成员函数不属于任何一个类对象,没有this指针,而非静态成员必须随类对象的产生而产生,所以静态成员函数"看不见"非静态成员,自然也就不能访问了
但是如果静态成员函数通过引用一个对象,是可以直接访问成员的,也体现了它成员函数的特权。
比如
class A
{
int m_i;
public:
static void f()
{
m_i=666; //这是非法的,这个等价于this->m_i=666,而静态方法没有this
}
static void f(A&a)
{
a.m_i=666; //这样就可以
}
};
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询