/*
C++ Primer 第四版 第400页 12.6.1 习题
习题12.38
定义一个命名为Foo的类,具有单个int型数据成员。为该类定义一个构造函数,
接受一个int型值并用该值初始化数据成员。为该类定义一个函数,返回其数据成员的值。
习题12.39
给上题中定义的Foo类定义另一个Bar类。Bar类具有两个static数据成员:一个为int型,
另一个为Foo类型。
习题12.40
使用上面两题中定义的类,给Bar类增加一对成员:第一个成员命名为FooVal,返回
Bar类的Foo类型static成员的值;第二个成员命名为callsFooVal,保存FooVal调用
的次数。
*/
下面是我写的,可编译不过去,望高用给指点下
#include <iostream>
using namespace std;
/*定义Foo类*/
class Foo
{
public:
int back()
{
return x;
}
Foo(int n): x(n) {}
private:
int x;
};
/*定义Bar类*/
class Bar
{
public:
Foo FooVal();
int callsFooVal()
{
return count;
}
private:
static int count;
static Foo f;
};
/*定义Bar类的一个操作FooVal */
Foo Bar::FooVal()
{
int count = 0; //定义并初始化static数据成员count
++count;
return f;
}
/*主函数*/
int main()
{
Foo s(5);
cout << "x=" << s.back() <<endl;
Bar b;
b.FooVal();
cout << b.callsFooVal() << endl;
system("pause");
return 0;
}
[此贴子已经被作者于2007-11-18 19:35:32编辑过]