注册 登录
编程论坛 C++教室

二级考试的一道模拟题。。。求帮助。。。

sunflower44 发布于 2011-08-15 20:36, 509 次点击

下面代码横线处应该填什么,使得运行结果为42?

#include<iostream>
using namespace std;
class Foo{
    int value;
public:
    Foo():value(0){}
    void setValue(int value){
       _______=value;
    }
    void print(){cout<<value;}
};
int main(){
    Foo f;
    f.setValue(42);
    f.print();
    return 0;
}

PS:俺是不懂怎么给类的数据成员赋值啊,还有,最后输出的value到底是哪个“value”啊?晕了。。。
5 回复
#2
hoy0a1d2011-08-15 22:16
#include <iostream>
using namespace std;

class Foo
{
    int value;
public:
    Foo():value(0){}
    void setValue(int value)
    {
        Foo::value = value;
    }
    void print(){ cout << value; }
};

int main()
{
    Foo f;
    f.setValue(42);
    f.print();
    return 0;
}
#3
hoy0a1d2011-08-15 22:17
最后输出的  value 是  类里的  第一句定义的  int value
#4
sunflower442011-08-15 23:08
回复 3楼 hoy0a1d
貌似明白了
#5
xg56992011-08-15 23:22
程序代码:
#include<iostream>
using namespace std;
class Foo{
    int value;
public:
    Foo():value(0){}
    void setValue(int value){
        this->value=value;
    }
    void print(){cout<<value;}
};
int main(){
    Foo f;
    f.setValue(42);
    f.print();
    return 0;
}
this指针是指向当前对象的指针,一般情况系统会自动添加this指针可以不写this-> 但你那个情况就要写
具体为什么https://bbs.bccn.net/thread-347124-1-1.html 这个帖子里有

[ 本帖最后由 xg5699 于 2011-8-15 23:27 编辑 ]
#6
tiantiancc2011-08-17 00:55
直接用this
1