Like the term [[POJO]] (''Plain Old Java Object'') in the [[Java (programming language)|Java]] world, the term '''''Plain Old C/C++ object''''' or its acronym '''''POCO''''' means a [[C++|C/C++]] artifact that is ''neither defined by nor coupled to'' the underlying C/C++ component [[software framework|framework]] that manipulates it.
{{underlinked|date=October 2012}}
Like the term ''plain old Java object (POJO)'' in the [[Java (programming language)|Java]] world, the term '''''Plain Old C/C++ object''''' or its acronym '''''POCO''''' means a [[C++|C/C++]] artifact that is ''neither defined by nor coupled to'' the underlying C/C++ component framework that manipulates it. Examples of such an artifact include, for instance, instances of a [[C++ classes]], [[K&R C#K&R C|K&R]] [[struct (C programming language)|structs]], [[Union type|unions]], or even functions (as [[function pointers]]). This is contrast to component model in classic C/C++ component frameworks, such as [[Object Management Group|OMG]]-[[Common Object Request Broker Architecture#CORBA Component Model (CCM)|CCM]], [[Software Communications Architecture Reference Implementation|JTRS-SCA core framework (CF)]], OpenSOAOpen[[Service-oriented architecture|SOA]]'s [[Service Component Architecture|SCA]] for C++. These classic component frameworks either dedicate a proprietary component programming model (a [[super class]]), or mandate component implementations to be tightly coupled to the underlying framework (calling its [[runtime]]).