您好,匿名用户
随意问技术百科期待您的加入

静态函数 static bool 类型 问题

0 投票

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

用户头像 提问 2012年 12月1日 @ Sivir 上等兵 (275 威望)
分享到:

1个回答

0 投票

建议你还是把代码贴出来。我总结了一下关于静态数据成员和静态成员函数的一些知识点,希望对你有用!

静态成员函数不和任何对象相关联,所以

1、无法访问属于类对象的非静态数据成员

class A
{
    private:
        int a;//non-static
    public:
	A(int init):a(init){}
	static getvalue(){return a;}/*错误,无法访问属于类对象的非静态数据成员*/
};

2、无法访问非静态成员函数

class A
{
    private:
        int a;//non-static
    public:
	A(int init):a(init){}
	int getvalue(){return a;}//non-static
	static printvalue(){cout << getvalue() << endl;}/*错误,无法访问非静态成员函数*/
};

3、只能调用其余的静态成员函数

class A
{
    private:
	static int staticvalue;
        int a;//non-static
    public:
	A(int init):a(init){}
	static int getvalue(){return staticvalue;}
	static printvalue(){cout << getvalue() << endl;}
};

int A::staticvalue = 2;//类外的定义

int main(int argc , char *argv[])
{
    A demo(1);
    demo.printvalue();
    A::printvalue();

    return 0;
}

BTW:静态数据成员必须在类的外部定义

用户头像 回复 2012年 12月1日 @ Garen 上等兵 (269 威望)
提一个问题:

相关问题

0 投票
1 回复 36 阅读
用户头像 提问 2012年 12月1日 @ Malphite 上等兵 (306 威望)
0 投票
1 回复 41 阅读
用户头像 提问 2012年 12月1日 @ Trish 上等兵 (154 威望)
0 投票
1 回复 38 阅读
用户头像 提问 2013年 10月4日 @ 末日姐 上等兵 (172 威望)
0 投票
1 回复 53 阅读
0 投票
1 回复 26 阅读
用户头像 提问 2014年 2月15日 @ Wukong 上等兵 (475 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...