C++ : Java Glossary

home page C words local find full screen, hide local find menu Google search web for more information on this topic jump to foot of page translate this page with Babelfish punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (all) ©1996-2010 2008-09-17 Roedy Green, Canadian Mind Products
C++
The forefather of Java. You can call C++ routines from Java via native method calls. I learned C++ before Java. Much of my trouble at the beginning came from presuming they worked the same way just because they look similar.
Differences Compiling
Microsoft C++ Keywords Costs
Microsoft C++ sizeof Books
C/C++ Header Libraries Links

Differences between C++ and Java

Learning Java is much like learning a foreign language. The sooner you start learning to think in the language, rather than think in your native language (C++) and translating, the better command of the language you develop. This is even truer of Java than most other computer languages because Java is so strongly idiomatic. There are canned ways of doing almost everything. You build very little from scratch from the primitive elements.

Java superficially looks a lot like C++, but nearly all my trouble learning Java came from presuming it should work the same as C++ or should have buried somewhere some feature I used in C++. It works quite differently inside and has a completely different design philosophy. The rule of thumb is, don’t presume Java works the same as C++ just because the syntax looks the same. Java is a bit like an angler fish that dangles a C++ syntax lure to seduce C++ programmers into trying Java (for their own good, of course), but it works at a higher level of abstraction.

The major differences between C++ and Java are:

Microsoft C++ Keywords

Microsoft C++ Keywords
__abstract __int __try_cast delete goto property true
__alignof __int6 __unaligned deprecated if protected try
__asm __int64 __unhook dllexport in public typedef
__assume __int8 __uuidof dllimport initonly ref typeid
__based __interface __value do inline register typename
__box __leave __virtual_inheritance double int reinterpret_cast union
__cdecl __m64 __w64 dynamic_cast interface return unsigned
__declspec __m8 __wchar_t each interior_ptr safecast using
__delegate __m8d abstract else literal sealed uuid
__event __m8i array enum long selectany value
__except __multiple_inheritance bool event mutable short virtual
__fastcall __nogc break explicit naked signed void
__finally __noop case extern namespace sizeof volatile
__finally __pin catch false new static wchar_t
__forceinline __property char finally noinline static_cast while
__gc __raise class float noreturn struct  
__hook __sealed const for nothrow switch  
__identifier __single_inheritance const_cast friend novtable template  
__if_exists __stdcall continue friend_as nullptr this  
__if_not_exists __super default gcnew operator thread  
__inline __try delegate generic private throw  

Microsoft C++ sizeof

The sizes of various data types is platform dependent in C++, however here is what they mean when developing for Microsoft Windows Vista C++.
sizeof various data types is Microsoft C++ for Windows Vista
C++ Type Closest
Java Type
Bytes Bits Notes
boolean boolean 1 8 1-byte boolean, defined as unsigned char.
BOOLEAN boolean 1 8 1-byte boolean
byte byte 1 8 unsigned
BYTE byte 1 8 unsigned
char byte 1 8 8-bit signed chars.
unsigned char byte 1 8 8-bit unsigned chars.
TCHAR char 2 16 Unicode 16-bit chars. On older systems compiles to 8-bit.
wchar_t char 2 16 Unicode 16-bit unsigned chars
WCHAR char 2 16 Unicode 16-bit unsigned chars
short short 2 16 signed
USHORT char 2 16 unsigned
int int 4 32 signed
size_t int 4 32 unsigned
BOOL boolean 4 32 4-byte boolean
long int 4 32 signed
DWORD int 4 32 unsigned
void* Object 4 32 Pointer/Reference
float float 4 32 IEEE float
long long long 8 64 signed
double double 8 64 IEEE double
See also the table of JNI types. I discovered the information for the above table by running the following C++ program. You can modify it to prepare a list of types and sizes for your C/ C++ projects.

C/C++ Header Libraries

To use a C/C++ method you need include its prototype in a header file. Here are some of the most common header files and what the rougly contain:
Common C/C++ header files
Header Contents
afx.h includes Windows API and common C headers too.
afxcmn.h MFC support for Windows Common Controls
afxdtctl.h MFC support for Internet Explorer 4 Common Controls
afxext.h MFC extensions
afxwin.h MFC core and standard components
assert.h assert
conio.h getch, putch
ctype.h isUpper, isLower, toUpper
direct.h chdir, mkdir
dos.h DOS API
fcntl.h open flags: O_RDONLY, _O_CREAT, _O_EXCL
io.h _chsize, _chmod, _lseek
jni.h Java JNI library
mmsystem.h playsound
process.h exec, spawn
resource.h generated to include resources
share.h sharing flags: _SH_DENYRW, _SH_DENYWR, _SH_DENYRD, _SH_DENYNO, _SH_SECURE
stdafx.h standard precompiled header
stdio.h fclose, fgetc, printf, remove, rename, setvbuf
stdlib.h exit, putenv, splitpath
string.h strcpy, strcat, strcmp, strupr
sys\stat.h read/write permissions: _S_IREAD, _S_IWRITE
tchar.h 16-bit chars, TCHAR
winbase.h time structures: _FILETIME, _SYSTEMTIME
windows.h Windows API

Compiling

MS Visual C++ Express 9 aka Visual C++ 2008 Express is free, but you must register, and you must use the IE browser to do it. They ask you a ton of questions. The free version cannot generate 64-bit code.
You most commonly want to configure your project as a console application without precompiled headers. The command line equivalents to your GUI options should look something like this for debug:
Microsoft C++ Express cl.exe Command Line Options
Debug Release Notes
/Od /O2 debug or optimise for speed
/Oi intrinsic functions
/GL link time optimisation
/D "WIN32" /D "WIN32" 32-bit windows app
/D "_DEBUG" /D "NDEBUG" debugging on not
/D "_CONSOLE" /D "_CONSOLE" command line, console app
/D "_UNICODE" /D "_UNICODE" no multibyte sequences
/D "UNICODE" /D "UNICODE" no multibyte sequence
/EHsc /EHsc Enable C++ exceptions
/RTC1 run time checks
/MTd /MT multi-thread library
/Gy function level linking
/Fo"Debug\\" /Fo"Release\\" where to put the object modules
/Fd"Debug\vc90.pdb" /Fd"Release\vc90.pdb" Program database
/W3 /W3 warning level
/Y- /Y- inhibit precompiled headers
/nologo /nologo no startup banner
/c /c compile without linking
/Zi Debug format
/TP /TP compile as C++
/errorReport:prompt /errorReport:prompt prompt immediately
Microsoft Link link.exe Command Line Options
Debug Release Notes
/OUT:"E:\com\mindprod\splice\Debug\splice.exe" /OUT:"E:\com\mindprod\splice\Release\splice.exe" where exe file is generated
/INCREMENTAL:NO /INCREMENTAL:NO no incremental linking
/NOLOGO /NOLOGO no startup banner
/MANIFEST:NO /MANIFEST:NO no manifest
/DEBUG debug or release
/PDB:"E:\com\mindprod\splice\Debug\splice.pdb" Program database
/SUBSYSTEM:CONSOLE /SUBSYSTEM:CONSOLE command line console app
/OPT:REF optimise by removing unreferenced code
/OPT:ICF optimise by removing rendundant ICFs
/LTCG link time code generation
/DYNAMICBASE /DYNAMICBASE randomised image base
/NXCOMPAT /NXCOMPAT DEP compatible
/MACHINE:X86 /MACHINE:X86 Windows hardware
/ERRORREPORT:PROMPT /ERRORREPORT:PROMPT display errors immediately
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libraries

/FD means incremental rebuild. It is not a real command line option. You can safely delete compiler intermediate files: *.aps *.ilk *.ncb *.pbd *.pch. You must keep the *.sln *.vcproj *.user.

For command line use, you also need SET environment variables to help the compiler find the include libraries and the linker find the object libraries.

Costs

Books

book cover recommend book⇒C++ For Java Programmers
 paperback
ISBN13:978-0-201-61246-2impressioncounter
publisher:Addison Wesley
published:1999-04-02
by:Mark Allen Weiss
This is the same title as Mark Weiss’s book. Note the direction. Most books presume you know C++ and need to learn Java. This one presumes you know Java and need to learn or brush up on C++ for doing JNI or related work.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz
book cover recommend book⇒C++ For Java Programmers
 hardcover
ISBN13:978-0-13-919424-5impressioncounter
publisher:Prentice Hall
published:2003-11-07
by:Timothy A. Budd
This is the same title as Timothy Budd’s book. Note the direction. ost books presume you know C++ and need to learn Java. This one presumes you know Java and need to learn or brush up on C++ for doing JNI or related work.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz
book cover recommend book⇒Beginning Visual C++ 6
 paperback
ISBN13:978-1-86100-088-0impressioncounter
publisher:Wrox Press
published:1998-08
by:Ivor Horton
A gentle, easy-paced introduction to C++.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz
book cover recommend book⇒Accelerated C++: Practical Programming by Example
 paperback
ISBN13:978-0-201-70353-5impressioncounter
publisher:Addison-Wesley
published:2000-08-24
by:Andrew Koenig, Barbara E. Moo
Recommended for people who know Java and want to learn C++.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz
book cover recommend book⇒The Design and Evolution of C++
 paperback
ISBN13:978-0-201-54330-8impressioncounter
publisher:Addison-Wesley
published:1994-04-08
by:Bjarne Stroustrup
This is a fascinating book about the birth of a new computer language C++. He talks about the politics, the compromises, and the factors that made him design C++ the way it is.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz
book cover recommend book⇒The C++ Programming Language (3rd Edition)
 paperbackhardcover
ISBN13:978-0-201-88954-3impressioncounter978-0-201-70073-2impressioncounter
publisher:Addison-Wesley
published:1997-06-30
by:Bjarne Stroustrup
A reference manual for C++, rather formal.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz
book cover recommend book⇒The Annotated C++ Reference Manual
 paperback
ISBN13:978-0-201-51459-9impressioncounter
publisher:Addison-Wesley
published:1990-01-11
by:Margaret A. Ellis, Bjarne Stroustrup
A book for language lawyers on the fine points of C++. It is not suitable for initially learning the language. It is really more aimed at compiler writers. It covers C++ implementation techniques including vtbls.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz
book cover recommend book⇒Java Programming: Making the Move from C++
 paperback
ISBN13:978-1-85032-922-0impressioncounter
publisher:International Thomson Computer Press
published:1998-07-21
by:Joe Wigglesworth and Paula Lumby
Does not discuss anything past Java 1.1.
UK flag abe books.co.uk abe books.ca Canadian flag
UK flag amazon.co.uk. amazon.ca. Canadian flag
German flag abe books.de chapters.indigo.ca. Canadian flag
German flag amazon.de. abe books.com American flag
French flag abe books.fr amazon.com. American flag
French flag amazon.fr. barnes and noble.com American flag
Italian flag abe books.it powells.com American flag
Spanish flag iberlibro.com sony e-books American flag
Australian flag abe books anz

CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/cpp.html J:\mindprod\jgloss\cpp.html
CMP logofeedback Please email your feedback for publication, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.191.112]
You are visitor number 14,291.