我只是想检查编译器是否允许类型名称作为变量名称.我试过的时候
int int;
Run Code Online (Sandbox Code Playgroud)
它报告了一个错误说
错误C2632:'int'后跟'int'是非法的
但是当我尝试的时候
#include <string>
using namespace std;
int main()
{
string string;
}
Run Code Online (Sandbox Code Playgroud)
它没有给出任何错误.这两个string和int是数据类型.
为什么编译器允许string但不允许int?
编辑:包括更新.
编辑:有些人说int不是一个类.在这种情况下,为什么允许下面的行.
int a(10);
Run Code Online (Sandbox Code Playgroud)
它的工作方式类似于类的构造函数.
cod*_*ict 22
string不是C++ reserved word,但是int,保留字不能用作标识符.
并且它的语法很好,让类名和对象名相同.
class test {};
int main() {
test test; // test is an object of type test.
}
Run Code Online (Sandbox Code Playgroud)
int是一个C++关键字.在第二个声明'string string'中声明一个类型的对象'std::string'.在此之后,名称"string"隐藏'std::string'在不合格的查找中
#include <string>
using std::string;
int main(){
string string;
string s; // Error
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
731 次 |
| 最近记录: |