car*_*bir 1 c++ constructor destructor
以下程序显示错误:
#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;
}
Run Code Online (Sandbox Code Playgroud)
第11行:错误:由于-Wfatal-errors,对'count'的引用是模糊的编译终止.
<iostream.h>标准C++中没有标头.使用<iostream>名称std空间中具有名称的标头,因此不会使用名称来污染全局名称空间count.不要忘了使用std::cin,std::cout等等.从现在开始.
如果您的编译器无法识别<iostream>,请将其丢弃并获取新的编译器.例如,Visual Studio Express免费且易于使用,但目前并非符合标准,但对您来说这不应该是一个大问题.
您的代码有几个问题:
conio.hiostream.h,只是iostream()这个词maincout,你正在使用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;
}
Run Code Online (Sandbox Code Playgroud)