Add a common mistake case for header-only classes in components build doc

[email protected]

Review-Url: https://codereview.chromium.org/2686133003
Cr-Commit-Position: refs/heads/master@{#451390}
diff --git a/docs/component_build.md b/docs/component_build.md
index 06341c2..650cd83 100644
--- a/docs/component_build.md
+++ b/docs/component_build.md
@@ -253,3 +253,12 @@
 today, it might not be brought in due to completely unrelated changes in the
 future. The result will be undefined symbol errors from other components. Use
 source sets if your component is made up of more than one target.
+
+### Exporting functions and classes implemented in headers
+
+When you implement a symbol in a header the compiler will put that in every
+necessary translation unit and the linker will pick one. If the symbol is never
+referenced by code in the shared library it's supposed exported from, it will
+never be instantiated and never exported. The result will be undefined external
+symbol errors when linking. Exported symbols should be declared in a header but
+always implemented in a .cc file.