Go is a procedural and concurrent programming language. | C++ is an object-oriented programming language. |
Go does not contain classes with constructors and deconstructors. | C++ does contain classes with constructors and deconstructors. |
Go language provides automatic garbage collection for allocating memory. | C++ language does not provide automatic garbage collection for allocating memory. |
Go language contains pointers, but does not contain arithmetic pointer. | C++ language contains both pointers as well as arithmetic pointers. |
In Go language, map is passed by reference. | In C++, map is passed by value. |
It does not use header files. Instead of header file, go use packages. It uses import to import external packages. | It contain header file and does not contain package. |
It does not support implicit type conversion. | It support implicit type conversion. |
It does not support function overloading and also does not support user defined operators. | It support function overloading and also support user defined operators. |
It does not support const or volatile qualifiers. | It supports const and volatile qualifiers. |
It provides nil for invalid pointers. | It provides NULL or 0 or nullptr for invalid pointers |
Go use panic and recover for resolving error. | C++ use try, catch, and throw for resolving error. |
It does not have while or do-while statements. But for loop can be used like a while loop. | It have while or do-while statements. |
It is more strong typed as comparison to C++ language. | It is less strong typed as compare to Go language. |
Go contains goroutines and channel. | C++ has threads. |
Go does not support inheritance. But it provides an alternative in the form of Embedding. | C++ supports inheritance. |