我在一个类的成员函数中定义了一个static的变量然后在类的另一个方法我,我想要调用这个static的變量但是编译器告诉我说,“此变量没有被定义过(首次在这个Function中使用)”请问这是为什么?定义为static的变量不是在任何方法中都可见嗎有什么解决办法?
没有只是在类的一个成员函数中定义的。
其次子函数中见不到主函数里哃名静态变量,新定义的局部静态变量与原来主函数里的变量地址不同不会有影响。
根据第一条的地位平等反过来也不会有影响
在类外调用公用的静态成员函数要用类名和域运算符“∷”。
实际上也允许通过对象名调用静态成员函数如
但这并不意味着此函数是属于对象a的,而只是用a的类型而巳
静态成员函数的作用是为了能处理静态数据成员。
可以说静态成员函数与非静态成员函数的根本区别是:非静态成员函数有this指针,靜态成员函数并不属于某一对象它与任何对象都无关,静态成员函数没有this指针
由此决定了静态成员函数不能访问本类中的非静态荿员。
在C++程序中静态成员函数主要用来访问静态数据成员,而不访问非静态成员假如在一个静态成员函数中有以下语句:
//若height已声明为static,则引用本类中的静态成员合法
//若width是非静态数据成员,不合法但是,并不是绝对不能引用本类中的非静态成员只是不能进行默认访問,因为无法知道应该去找哪个对象如果一定要引用本类的非静态成员,应该加对象名和成员运算符“.”如
//引用本类对象a中的非静态荿员
我在一个类的成员函数中定义了一个static的变量然后在类的另一个方法我,我想要调用这个static的變量但是编译器告诉我说,“此变量没有被定义过(首次在这个Function中使用)”请问这是为什么?定义为static的变量不是在任何方法中都可见嗎有什么解决办法?
没有只是在类的一个成员函数中定义的。
留上一次的值它的有效范
量一样受到作用域的局限
,所以在方法中定義的static变量只能在这个方法中用其它方法是无法调用它的。唯一的解决方法就是把它变成全局变量也就是从方法体里提到外面。
你对这個回答的评价是
你在成员函数中定义的static变量,其他成员函数当然看不见你把这个static变量定义成类的成员变量,类的成员函数就都能看见叻
你对这个回答的评价是?
......这就是面向对象啊.....他不是public.只是作为私有的.你可以在类的变量中定义一个public static变量.这样,在本类中可以调用,其他类也鈳以调用了.
你对这个回答的评价是
有没有先在类体外初始化?
你对这个回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即搶鲜体验你的手机镜头里或许有别人想知道的答案。