00问答网
所有问题
当前搜索:
非静态成员函数访问静态成员变量
C++,私有
static函数
怎么调用
答:
原因出在你的
static函数
是private(私有的)所以类外部不能调用的。只有在类的内部,或都由这个类生成的对象的内部才能使用 你把他的权限改成public,他就能在类外部使用了,你那两种调用才会成功。
关于指向类中
非静态成员函数
的指针
答:
指向成员函数的指针,当指向普通成员函数时,需要使用&;指向
静态成员函数
时,不需要使用&。造成这一现象的原因是C++中关于左值的规定。具有函数类型的表达式称为函数指示符,例如函数名或者对函数指针的解引用。由于C中的左值性反映的是数据抽象而不是操作抽象,因此C中的函数指示符既不是左值也不是右值...
c++语言中类中的
静态
数据
成员
为什么必须在类体外初始化?
答:
这样就对了,因为给a分配了内存,所以可以
访问静态成员变量
a了。因为类中的静态成员变量仅仅是声明,暂时不需分配内存,所以我们甚至可以这样写代码://a.cpp class B; //这里我们使用前置声明,完全不知道B是什么样子 class A { public:static B bb;//声明了一个类型为B的静态成员,在这里编译器...
c++中可以对类中私有
成员
中的
静态变量
初始化吗?
答:
1.static成员的所有者是类本身和对象,但是多有对象拥有一样的静态成员。从而在定义对象是不能通过构造函数对其进行初始化。2.静态成员不能在类定义里边初始化,只能在class body外初始化。3.静态成员仍然遵循public,private,protected
访问
准则。4.
静态成员函数
没有this指针,它不能返回
非静态成员
,因为...
static
关键字的作用
答:
static的主要使用情况:1、static方法 static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行
访问
,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的
非静态成员变量
和非静态成员方法,因为非静态成员...
C++中的
成员变量
和
成员函数
在内存中是怎么存储的?与结构体中变量和函数...
答:
简单点,
非静态成员变量
占用空间,
成员函数
(无论是否是静态的)则不占用空间:class MyClass{ int a; //占用4字节 float b; //占用4字节 static int c;//在全局数据区,所有对象共享,不计入各对象中 int fun1(); //不占用对象的空间 float fun2();//不占用对象的空间 static int fun...
“无法从静态上下文中引用
非静态
方法”这个问题怎么解决?
答:
因为我们知道静态的方法可以在没有创建实例时使用,而申明为非静态的
成员变量
是一个对象属性,它只有在对象存在时引用,因此如果在对象未创建实例时我们在静态方法中调用了
非静态成员
方法自然是非法的,所以编译器会在这种时候给各错误. 简单说来,静态方法可以不用创建对象就调用,非静态方法必须有了对象的...
高分,新手学VC++,求达人们解释下专业术语。
答:
也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为
非静态成员函数
的隐含形参,对各成员的
访问
均通过this进行 一种情况就是,在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;另外一种情况是当参数与
成员变量
名相同时,如this->n = n (不能写成n ...
静态变量与
非静态变量
的区别
答:
1、存储位置不同 静态变量:存储在全局数据区(静态数据区)。
非静态变量
叫动态变量:存储在内存出栈数据区。2、生命期不同 动态变量:根据你定义的位置确定,比如你在一个
函数
中定义的,那么超出该函数范围变量将失效。静态变量:程序结束时才释放。3、作用域不同 动态变量:同样的要根据你定义的位置...
“无法从静态上下文中引用
非静态
方法”这个问题怎么解决?
答:
用static修饰的方法称为静态方法,修饰变量则为
静态变量
,又分别叫做类方法或者类变量。静态方法中不能直接调用
非静态
方法。因为非静态方法不是独立存在的,它是依附于对象存在——即只有申明了对象,才能通过对象调用。而静态方法则可以直接通过类名调用,而不需要申明对象。因此直接引用非静态方法就会出错。
棣栭〉
<涓婁竴椤
4
5
6
7
9
10
8
11
12
13
涓嬩竴椤
灏鹃〉
其他人还搜