Fortran is a "high level" language and C++ is a "medium level" language.
What this means is that Fortran looks much more like english that humans use, and C++ is much more like the machine language that computers use. Machine language itself is nothing more than long strings of integers between 0 and 255. Assembly language is a "low level" attempt to make things easier for programmers, but the commands are so primitive it takes dozens of instructions to simply print a single line of text. C++ is a "library" of Assembler routines which have been standardized, and although it still does not look like english, it is far quicker to program in C++. Fortran looks a lot like english (there is an actual "print" statement) and complicated programs can be developed very quickly with a minimum of programming.
However, there is a tradeoff. As languages move up from raw machine code to english syntax, the coding becomes more and more standardized. In other words, one is trading flexability for user friendliness. Programming in the BASIC language is almost as easy as writing an essay, but an operating system like Microsoft Windows would be impossible to write in BASIC. Fortran is basically (sic) BASIC with a robust array of mathematical functions built into it. This is why it is used by many Engineers who don't have the desire to earn a second degree in computer science to be able to use computers.
Low level languages are best used to develop graphical applications and/or the assembler code needed by the chips on the video cards which drive them. Hence, most operating systems are written in C++, with assembler added to speed up program execution. High level langues are de-compiled back into machine code prior to execution. The more similar the language is to machine code, the faster the program runs. This is why video games are highly dependant on assembly language. One other area of engineering which usues a lot of machine code is robotics. These devices use tiny computers to control articulation and a host of other things. These are known as "embedded systems" and all engineers will have to deal with them eventually. However, archetects and draftsmen are more prone to use pre-written packages on pre-compiled operating systems. Autodesk's CAD programs running on Windows is a good example for a design engineer wanting to simply display the dimensions of some part. A civil engineer would probably need something like Fortran to be able to compute the stress on a bridge or building framework. Only software engineers are really reliant on things such as C++ and Assembler. Of course, if it were not for software engineers, the rest of the engineering community would still be using slide rules. (slide rules were non-electronic calculating devices consisting of a graduated sliding bar. In essence, it was a ruler which could calculate. It was only accurate to three decimal places, but very useful in its day).
FYI: about "pointers". Pointers are the hardest thing to learn when it comes to low level languages. A pointer is a variable which contains the address of another variable. It is a very shorthand means of using a "goto" statement. Since computers can't speak, text is nothing more than random strings of integers arranged throught memory. The only way to stitch them all together is using pointers. Text strings are very easy to use in Fortran, but very difficult to handle in C++.