use*_*757 1 c++ methods static
所以我有一段代码与这样的类:
#include<iostream>
#include<cstring>
class stu
{
static int proba;
public:
stu();
static int no(){
return proba;
}
};
int stu::proba=0;
stu::stu()
{
proba=proba+1;
}
int main()
{
std::cout<< stu::no << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
输出是1.即使我改变stu::no了它也只是{return 12;}
为什么它会发生?我如何解决它??
将其更改为 std::cout<< stu::no() << std::endl;
如果没有(),我相信它会作为指针进行评估,而不是按照你期望的那样做.
编辑:正如@Loomchild所指出的那样,使用g++ -Wall将提供关于为什么它始终为1的进一步见解.指向静态函数的指针总是true在此上下文中进行评估,因此打印的值.
| 归档时间: |
|
| 查看次数: |
776 次 |
| 最近记录: |