怎么把类名改为大写的就报错?

来源:百度知道 编辑:UC知道 时间:2024/05/29 02:38:00
#include<iostream>
using namespace std;
class String
{
public:
String(){p=NULL;}
String(char *str);
void display();
private:
char *p;
};
String::String(char *str)
{
p=str;
}
void String::display()
{
cout<<p;
}
int main()
{
String string1("Hello"),string2("Book");
string1.display();
cout<<endl;
string2.display();
return 0;
}
为什么把类String(S大写)改为string(S小写)会报错, error C2872: 'string' : ambiguous symbol。

【string】是c++里的一个类型,不能用类型名作类名。。

二义性符号
分析与处理:两个或多个结构的某一域名相同,但具有的便移、类型不同。在变量或表达式中引用该域而未带结构名时,会产生二义性,此时需要修改某个域名或在引用时加上结构名。
参考书:c语言程序设计 附录5

没string这个类,c++是区分大小定的