修改c++程序

来源:百度知道 编辑:UC知道 时间:2024/06/23 17:32:00
修改每个注释后的错误,使程序的输出结果为:There are 2 object(s)
// proj1.cpp
#include <iostream>
using namespace std;

class MyClass {
public:
// ERROR **********found**********
MyClass(int i = 0) value = i
{ count++; }
void Print()
{ cout << "There are " << count << " object(s)." << endl; }
private:
const int value;
static int count;
};
// ERROR **********found**********
static int MyClass::count = 0;
int main()
{
MyClass obj1, obj2;
// ERROR **********found**********
MyClass.Print();
return 0;
}

1.构造函数改为:
MyClass(int i = 0):value(i)
{count++;}
原因:value是const成员,只能用成员初始化器初始化。
2.将static int MyClass::count=0;
改为int MyClass::count=0;
3.将MyClass.Print();改为:
obj1.Print();
(或obj2.Print();)

还有一种方案:
1.(1)同上面的1改法;
(2)将void Print()前加上static
2.同上面的2改法;
3.将MyClass.Print();改为
MyClass::Print();
第一个方案好一些。。。