The differences between Java and C++:
1, Java runs in a virtual machine.
2, C++ natively supports unsigned arithmetic.
3, In Java, parameters are always passed by value (or, with objects, their references are passed by value). In C++, parameters can be passed by value, pointer, or by reference.
4, Java has built-in garbage collection.
5, C++ allows operator overloading.
6, C++ allows multiple inheritance of classes.
关于virtual函数:
C++ non-virtual function calls are resolved at compile time with static binding, while virtual function calls are resolved at run time with dynamic binding。
深拷贝和浅拷贝:
struct Test
{
char *ptr;
};
void shallow_copy(const Test &src, Test &dest)
{
dest.ptr = src.ptr;
}
void deep_copy(const Test &src, Test &dest)
{
dest.ptr = malloc(strlen(src.ptr) + 1);
memcpy(dest.ptr, src.ptr);
}
浅拷贝和深拷贝具体参见转载文章。