函数定义为staticboolfoo(conststd::string&iVariable);属于类A当我在使用时if(A::foo(Var))时,我发现多次调用该if语句,且使用了不同的Var时,foo返回值一直是false,是不是说静态函数的值在第一次调用时就确定了,无法改变?困惑,谢谢!!
2 回答

慕姐8265434
TA贡献1813条经验 获得超2个赞
建议你还是把代码贴出来。我总结了一下关于静态数据成员和静态成员函数的一些知识点,希望对你有用!静态成员函数不和任何对象相关联,所以1、无法访问属于类对象的非静态数据成员classA{private:inta;//non-staticpublic:A(intinit):a(init){}staticgetvalue(){returna;}/*错误,无法访问属于类对象的非静态数据成员*/};2、无法访问非静态成员函数classA{private:inta;//non-staticpublic:A(intinit):a(init){}intgetvalue(){returna;}//non-staticstaticprintvalue(){cout<};3、只能调用其余的静态成员函数classA {private:staticintstaticvalue;inta;//non-staticpublic:A(intinit):a(init){}staticintgetvalue(){returnstaticvalue;}staticprintvalue(){cout<}; intA::staticvalue=2;//类外的定义intmain(intargc,char*argv[]){Ademo(1);demo.printvalue();A::printvalue();return0;}BTW:静态数据成员必须在类的外部定义
添加回答
举报
0/150
提交
取消