KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
While I was reading the accepted answer of this question , I had the following question: Typically, methods are defined in header files ( .hpp or whatever), and implementation in source files ( .cpp or whatever). One of the main reasons it is bad practice to ever include a "source file" ( #include <source_file.cpp> ) is that its methods implementation would then be duplicated, resulting in linking errors. When one writes: #ifndef BRITNEYSPEARS_HPP #define BRITNEYSPEARS_HPP class BritneySpears { public: BritneySpears() {}; // Here the constructor has implementation. }; #endif /* BRITNEYSPEARS_HPP */ He is giving the implementation of the constructor (here an "empty" implementation, but still). But why then including this header file multiple times (aka. on different source files) will not generate a "duplicate definition" error at link time ?
Tags (comma-separated)
Save Edits
Cancel