"Lokicer" <lo*****@163.co m> wrote in message
news:cv******** **@mail.cn99.co m...
I am a newbie in C++, it seems compiler must see the source code of
template classes(with .h files and .cpp files£©when compile. I want to
prevent others from getting .cpp files. How should i do?
To instantiate template code for new (user-provided) data types,
the compiler does need to see the template source code (which
is commonly left into .h files). You can't get around that,
but your template code could be a thin layer around non-template
code (stored in .cpp files) that you distribute into a
compiled library.
It is common enough for proprietary C++ libraries to be
distributed as, e.g. on Windows, .h files and a .lib+.dll
compiled library (NB: this is OT here, ask on a platform-
specific newsgroup).
When you do that, you need to be aware potential
incompatibiliti es among C++ compilers on some platforms
(while the way to call C-style functions is pretty much
standardized everywhere, on some operating systems/processors
classes/overloaded functions/etc can be implemented in
incompatible ways -- different "ABI"s).
This is probably what Jack Klein was thinking about.
Besides that, C++ is actually among the languages that
are the more difficult to reverse-engineer from compiled code.
Ivan
--
http://ivan.vecerina.com/contact/?subject=NG_POST <- email contact form