我是 C++ 编程新手。 所以我正在尝试我的运气执行一些小程序。 我正在研究 HP-UX它有一个编译器 可执行文件名为 aCC。
我正在尝试执行一个小程序
#include <iostream.h>
using namespace std;
class myclass {
public:
int i, j, k;
};
int main()
{
myclass a, b;
a.i = 100;
a.j = 4;
a.k = a.i * a.j;
b.k = 12;
cout << a.k << " " << b.k;
return 0;
}
当我编译它时,它给我一个错误:
> aCC temp.cpp
Error 697: "temp.cpp", line 2 # Only namespace names are valid here.
using namespace std;
^^^
到底是什么问题?
是std
不被视为 aCC 编译器中的 namespace ,或者 aCC 是否存在一些严重缺陷?
如果我更改 <iostream.h>
至 <iostream>
,我添加了更多错误,如下所示。
>aCC temp.cpp
Error 112: "temp.cpp", line 1 # Include file <iostream> not found.
#include <iostream>
^^^^^^^^^^
Error 697: "temp.cpp", line 2 # Only namespace names are valid here.
using namespace std;
^^^
Error 172: "temp.cpp", line 14 # Undeclared variable 'cout'.
cout << a.k << " " << b.k;
最佳答案
您使用的是哪个版本的 aCC?旧版本使用了一个预标准的 STL 实现,将所有内容放在全局命名空间中(即不使用 std 命名空间)
您可能还需要在编译时使用 -AA 选项。这告诉编译器使用更新的 2.x 版本的 HP 的 STL 库。
>aCC -AA temp.cpp
它应该永远是
<iostream>
<iostream.h>
来自该语言的预标准实现,尽管它通常是为了保持与旧代码的向后兼容性而发布的。
关于C++程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1775573/