函数定义为static bool foo(const std::string& iVariable); 属于类A
当我在使用时 if (A::foo(Var)) 时,我发现多次调用该if语句,且使用了不同的Var时,foo返回值一直是false,是不是说静态函数的值在第一次调用时就确定了,无法改变?困惑,谢谢!!
函数定义为static bool foo(const std::string& iVariable); 属于类A
当我在使用时 if (A::foo(Var)) 时,我发现多次调用该if语句,且使用了不同的Var时,foo返回值一直是false,是不是说静态函数的值在第一次调用时就确定了,无法改变?困惑,谢谢!!
楼上说的有问题,静态函数是最好只引用静态数据成员,但也可以引用非静态的数据成员。如果引用对象中的非静态数据成员可以声明函数static bool foo(A & a)。lz
这里const std::string& iVariable并不是类A中的数据成员,为什么要用静态函数来处理呢?
3 回答2.1k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答536 阅读✓ 已解决
1 回答3.3k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答2.2k 阅读
建议你还是把代码贴出来。我总结了一下关于静态数据成员和静态成员函数的一些知识点,希望对你有用!
静态成员函数不和任何对象相关联,所以
1、无法访问属于类对象的非静态数据成员
2、无法访问非静态成员函数
3、只能调用其余的静态成员函数
BTW:静态数据成员必须在类的外部定义