C++ Compiling Problems
Ian Malone
ibm21 at cam.ac.uk
Sun May 22 15:43:24 UTC 2005
Matthew Miller wrote:
> Coert Waagmeester wrote:
> in fact all of this ...
>> I have an eBook from SAMS Teach yourself C++ in 21 days
>> When I compiled their Hello World example:
>>
>> 1: #include <iostream.h>
>> 2:
>> 3: int main()
>> 4: {
>> 5: cout << "Hello World!\n";
>> 6: return 0;
>> 7: }
>>
>> g++ came back with:
>> In file included from
/usr/lib/gcc/i386-redhat-linux/3.4.2/../../../../include/c++/3.4.2/backward/iostream.h:31,from
hello.cpp:1:
>>
/usr/lib/gcc/i386-redhat-linux/3.4.2/../../../../include/c++/3.4.2/backward/backward_warning.h:32:2:
warning:
>> #warning Thisfile includes at least one deprecated or antiquated
>> header. Please consider using one of the 32 headers
>> found in section 17.4.1.2 of the C++ standard. Examples include
>> substituting the <X> header for the <X.h> header for C++ includes,
>> or <iostream> instead of the deprecated header <iostream.h>. To
>> disable this warning use -Wno-deprecated.
> ... is *exactly* that issue -- iostream.h is the older, more-C-like
> header file, and instead, you want the one called just iostream, with
> no extension.
The OP will probably be interested to know also that the example as
written won't compile if you simply substitute <iostream> for
<iostream.h>, for the same (Object orientated) reason. In <iostream>
'cout' etc. live under the std namespace, so either 'cout' becomes
'std::cout' or you first expose cout using:
#include <iostream>
using std::cout;
Or expose the entire std namespace:
#include <iostream>
using namespace std;
(This one is useful because lots of the standard C++ functions and
classes like string live under std::)
--
imalone
More information about the fedora-list
mailing list