静态成员函数不可以访问类中的成员变量

静态成员函数不可以访问类中的普通变量。请问“访问”这个词不能改变普通变量的值,那么可不可以输出普通变量呢?直接cout<<普通变量;可以吗??... 静态成员函数不可以访问类中的普通变量。请问“访问”这个词 不能改变普通变量的值,那么可不可以输出普通变量呢?直接cout<<普通变量;可以吗?? 展开
 我来答
lsslddd
2014-03-13 · TA获得超过936个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:423万
展开全部

访问的意思就是读或者写,输出属于读出行为,自然不行。

静态成员函数不属于任何一个类对象,没有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;   //这样就可以
}
};
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
dj978819220
2014-03-14
知道答主
回答量:34
采纳率:0%
帮助的人:13.9万
展开全部
明显不可以啊 !!! 普通变量必须实例化才会出现 !! 你直接输出是几个意思???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式