以下程序显示错误:
#include<conio.h>
#include<iostream.h>
int count = 0;
class alpha
{
public:
alpha()
{
count++;
cout<<"\n Number of objects created "<<count;
}
~alpha()
{
cout<<"\n Number of object destroyed"<<count;
count--;
}
};
int main
{
cout<<" inside main ";
alpha a1, a2, a3, a4;
{
cout<<"\n Block 1 ";
alpha A5;
}
{
cout<<"\n Block 2 ";
alpha a6;
}
cout<<" main again ";
return 0;
}
第11行:错误:由于-Wfatal-errors,对'count'的引用是模糊的编译终止。
答案 0 :(得分:9)
标准C ++中没有标题<iostream.h>
。使用名称在<iostream>
命名空间中的标头std
,因此不会污染名称为count
的全局命名空间。
从现在开始不要忘记使用std::cin
,std::cout
等。
如果您的编译器无法识别<iostream>
,请将其丢弃并获取新的编译器。 Visual Studio Express,其中之一,免费且易于使用,但目前并非符合标准,但对您来说这不应该是一个大问题。
答案 1 :(得分:5)
您的代码有几个问题:
conio.h
iostream.h
这样的标题,它只是iostream
()
main
cout
,endl
等。修正所有错误后,你会得到类似的结果:
#include<iostream>
using namespace std;
int count = 0;
class alpha
{
public:
alpha()
{
count++;
cout<<"\n Number of objects created "<<count;
}
~alpha()
{
cout<<"\n Number of object destroyed"<<count;
count--;
}
};
int main()
{
cout<<" inside main ";
alpha a1, a2, a3, a4;
{
cout<<"\n Block 1 ";
alpha A5;
}
{
cout<<"\n Block 2 ";
alpha a6;
}
cout<<" main again ";
return 0;
}
答案 2 :(得分:0)
尝试稍微更改计数变量的名称。我认为“count”在流中可能有特殊意义。