问题描述
- 求c++大神,解决以下问题,先谢谢了
-
在 c++中,静态的函数可以访问 非静态的数据成员吗?能的话如何访问?谢了
解决方案
不能的。C++会区分两种类型的成员函数:静态成员函数和非静态成员函数。这两者之间的一个重大区别是,静态成员函数不接受隐含的this自变量。所以,它就无法访问自己类的非静态成员。
解决方案二:
class A
{
public:
A()
{
i = 123;
}
static void StaticFun(const A& a)
{
printf("%d", a.i);
}
private:
int i;
};
int main(int argc, char* argv[])
{
A a;
A::StaticFun(a);
return 0;
}
解决方案三:
不能,静态成员函数属于类不包含在类对象中,类的非静态成员函数包含在类对象中
解决方案四:
不能,静态成员函数只能访问静态成员变量。
解决方案五:
静态函数不能访问非静态变量
解决方案六:
假设是可以访问的,那么一个类可以有很多实例,也可以一个实例都没有,假设可以的话,那么请问,你访问实例变量究竟是哪个实例对象的。遇到没有创建实例的时候又当如何?
解决方案七:
这个要根据存储模型来考虑:静态函数属于类本身,占内存,而非静态变量是属于变量,实例话才有空间,所以这两个东西没有直接关联所以不能访问了
解决方案八:
解决yum的奇怪问题,先执行以下命令
时间: 2024-09-12 09:07:22