Displaying objects which are found in C++
<p>I have a little program which stores some objects, and there is a function which should find required object if there are any matching abstraction object, returns the first found or default object. I need to display them, but when I'm using "show" function I'm getting this error:</p>

<pre><code>no matching function for call to 'show'
</code></pre>

<p>Here is the code of main source file:</p>

<pre><code>#include &lt;iostream&gt;
#include "object.h"
#include "Inventory.h"

using namespace std;


void fill(Inventory&amp; i)
{
    i.add_item("object", 22, 20, "blue");
    i.add_item("object2", 25, 20, "red");
    i.add_item("object3", 40, 20, "green");

}

void show(object&amp; item)
{
    cout &lt;&lt; item.get_modelName() &lt;&lt; " "
         &lt;&lt; item.get_screenSize()&lt;&lt; " "
         &lt;&lt; item.get_capacity() &lt;&lt; " "
         &lt;&lt; item.get_colour() &lt;&lt; " "
         &lt;&lt; endl;
}
int main()
{
    Inventory inventory;
    inventory.init();
    fill(inventory);


    object query1;
    query1.init("", 0, 128, "silver");
    show(inventory.find_item(query1));



    object query2;
    query2.init("object", 20, 20, "silver");
    show(inventory.find_item(query2));


#ifndef NDEBUG
    cin.get();
#endif

    return 0;
}
</code></pre>

<p>Inventory.h:</p>

<pre><code>#ifndef Inventory_h
#define Inventory_h
#pragma once
#include "object.h"

class Inventory
{

public:
    // Initializes inventory for storing abstraction objects
    void init() { _count = 0; }

    // Returns the number of currently stored abstraction objects
    size_t get_count() {  return _count; }

    // Returns stored abstraction object by its index or default if index is invalid
    iPhone get_item(size_t i) { return (i &lt;_count) ? _items[i] : iPhone(); }

    // From passed property values, creates and adds new abstraction object in an array _items
    void add_item(std::string modelName, float screenSize, int capacity, std::string colour);

    // Looks for a matching abstraction object and returns the first found or default object
    object find_item(object&amp; query);

private:
    // The maximum number of abstraction objects that can be stored
    static const size_t MAX_SIZE{ 10 };

    // An actual array for storing abstraction objects
    object _items[Inventory::MAX_SIZE];

    // The number of currently stored abstraction objects in the array _items
    size_t _count;

};


#endif /* Inventory_h */
</code></pre>

<p>Inventory.cpp:</p>

<pre><code>#include "Inventory.h"

void Inventory::add_item(std::string modelName, float screenSize, int capacity, std::string colour)
{
    if (_count &lt; Inventory::MAX_SIZE)
    {
        object new_item;
        new_item.init( modelName, screenSize,  capacity,  colour);
        _items[_count] = new_item;
        _count++;
    }
}

object Inventory::find_item(object &amp;query)
{
    for (size_t i = 0U; i &lt; _count; i++)
    {
        object&amp; item = _items[i];

        //for string type property
        if (query.get_modelName()!= ""
            &amp;&amp; query.get_modelName() != item.get_modelName())
            continue;

        // for number type property
        if (query.get_screenSize() != 0
            &amp;&amp; query.get_screenSize() != item.get_screenSize())
            continue;
        // for number type property
        if (query.get_capacity() != 0
            &amp;&amp; query.get_capacity() != item.get_capacity())
            continue;
        //for string type property
        if (query.get_colour()!= ""
            &amp;&amp; query.get_colour() != item.get_colour())
            continue;
        return item;

    }
    return object{};    // return the default value object (or null object)
}
</code></pre>

<p>It is my first experience in C++. That's why I might have some mistakes.
Why I'm getting this error? </p>