Depends what you are looking for.
I guess, that you know C++. Else you wouldnt ask about the API for linux (C++ classes)
Therefor I guess its not reference documentation for the language itself you need.
As some people pointed out theres online references to the language C++ and C on gnu.org
Linux does not have a foundation C++ library, if you looking for a foundation library for linux I would have to dispoint you. Most of Linux (and Unix) is coded in C. And the man pages are the place to look for documentation of specific functions. However learning from the man pages alone is not easy, and you should get a good book teaching Unix API. Linux follows (most of) the Unix API (A table of Unix API function calls can be found at
www.unix.org). I would recomend a book here, but.. It actualy slipped my mind. You could however get _any_ Unix-C-Api book out there, it does not have to be Linux specific. If anything missmatches then refere to the man pages. By the way, the man pages are installed when you install the development enviroment on Linux (This is normaly included in every distribution of Linux.. RedHat, Suse, Debian).
Did a search on google, and I think this could be a good book for you: "Advanced Programming in the UNIX Environment" (
http://www.amazon.co.uk/exec/obidos/...348230-1206259).
These APIs does not include any GUI stuff at all !!!! Unix is very "down to basics" and to code GUI you need to use one of the many GUI libraries around (GTK, Xt, etc..).
If you do not want to learn C, and if you are stuck in classes theres libraries thats "ontop" of the Unix-System(C)-Api. These libraries might be what you looking for if you want to getup to speed in development under Linux. wxWindows.org is one of these, its a GUI library but it also includes socket handling, for normaly file handling you can use the normal C++ language API.
Both C and C++ compilers are installed if you install the development enviorment when installing Linux on your box. You can find the includefiles in diffrent locations on the machine, most common are /usr/include, /usr/X11R6/include and /usr/local/include. The C manual you find using the man pages "man socket". The howtos you find in general Unix books, as IDE (integrade development enviroment) (think VisualStudioC++) you can use KDevelop (
www.kde.org).
Hope this helped some, and that I didnt get what you wanted wrong =)