# C++ for Java Developers

## Text Book

![](https://ia804604.us.archive.org/BookReader/BookReaderPreview.php?id=cforjavaprogramm0000weis\&subPrefix=cforjavaprogramm0000weis\&itemPath=/24/items/cforjavaprogramm0000weis\&server=ia804604.us.archive.org\&page=leaf1\&fail=preview&\&scale=4\&rotate=0)

***

{% @mermaid/diagram content="mindmap
root((mindmap))
C0#58; Introduction
High Level Difference
C1#58; Basic Types and Control Structures
C2#58; Functions, Arrays, Strings, and Parameter Passing
C3#58; Pointers and Reference Variables
C4#58; Object#8211;based Programming#58; Classes
C5#58; Operator Overloading
C6#58; Object#8211;Oriented Programming#58;  Inheritance
C7#58; Templates
C8#58; Abnormal Control Flow
C9#58; Input and Output
C10#58; Collections#58; The Standard Template Library
C11#58; Primitive Arrays and Strings
C12#58; C#8211;Style C++
C13#58; Using java and C++#58; the JNI
" %}

***

![](https://raw.githubusercontent.com/changkun/modern-cpp-tutorial/master/assets/cover-2nd-en.png)

[READ ONLINE](https://changkun.de/modern-cpp/en-us/00-preface/)

***

## Practice

![](https://build-your-own.org/redis/img/book_byor_cover_1024.jpg)

[Build Your Own Redis with C/C++](https://build-your-own.org/redis/)

[dyredis](https://github.com/damonYuan/dyredis)

***

[Let's Build a Simple Database](https://cstack.github.io/db_tutorial/)

![](https://cstack.github.io/db_tutorial/assets/images/arch2.gif)

***

[Learn C++ online](https://www.learncpp.com/)

***

<https://learnmoderncpp.com/>

## Blogs

### Build System

* [Understanding C/C++ Build system by building a simple project](https://dev.to/narasimha1997/understanding-c-c-build-system-by-building-a-simple-project-part-1-4fff) and here is the [code](https://github.com/damonYuan/memlogger) updated for Mac OS.
* [The Complete C++ Build System: CMake & Ninja](https://medium.com/@codeinseoul/the-complete-c-build-system-cmake-ninja-part-1-b7309be1a11e)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.damonyuan.com/tech/2023/230717-cpp-for-java-programmers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
