请问一个关于工厂模式的有关问题

请教一个关于工厂模式的问题
先说明一下代码,“主板”类和“主板制造商”类,主板制造商根据输入,生成不同品牌的主板
C/C++ code

//----------
//主板类源文件
//----------
class cMotherboard
{
public:
    cMotherboard()
    {
        printf("cMotherboard\n");
    }
    
    virtual ~cMotherboard()
    {
        printf("~cMotherboard\n");
    }
    
    void Use(void);
};

void cMotherboard::Use(void)
{
    printf("Motherboard use...\n");
}



class cAsusMb:public cMotherboard    //华硕主板
{
public:
    cAsusMb()
    {
        printf("cAsusMb\n");
    }
    
    ~cAsusMb()
    {
        printf("~cAsusMb\n");
    }
};



class cGigaMb:public cMotherboard    //技嘉主板
{
public:
    cGigaMb()
    {
        printf("cGigaMb\n");
    }
    
    ~cGigaMb()
    {
        printf("~cGigaMb\n");
    }
};



//-------------------
//主板制造商类源文件
//-------------------
class cMotherboardManufacturer
{
public:
    cMotherboard* CreateMotherboard(char* brand);

    cMotherboardManufacturer()
    {
        printf("cMotherboardManufacturer\n");
    }
    
    virtual ~cMotherboardManufacturer()
    {
        printf("~cMotherboardManufacturer\n");
    }
    
private:
    cMotherboard* pMotherboard;
    
};




cMotherboard* cMotherboardManufacturer::CreateMotherboard(char* brand)
{
    pMotherboard = NULL;
    if (0 == strcmp(brand, "asus"))
    {
        pMotherboard = new cAsusMb;
    }
    else if (0 == strcmp(brand, "giga"))
    {
        pMotherboard = new cGigaMb;
    }
    return pMotherboard;
}




//----------
//   应用
//----------
int main(void)
{
    cMotherboardManufacturer* mm = new cMotherboardManufacturer;
    
    cMotherboard* m1 = mm->CreateMotherboard("msi");
    m1->Use();
    delete m1;

    cMotherboard* m2 = mm->CreateMotherboard("giga");
    m2->Use();
    delete m2;

    delete(mm);
    
    
    return 0;
}





这段代码运行起来是没有问题的
我的问题是:由于工厂的CreateMotherboard()方法是通过new创建对象,每创建一次需要对应一个delete销毁,这个delete该放在哪儿?放在使用它的地方(此处的main函数)吗?感觉让用户来delete不太合适,用户毕竟不清楚CreateMotherboard()方法内部是通过new创建的,如果delete放在工厂内部 那应该怎么实现

------解决方案--------------------
1:给工厂提供一个releaseObj的接口,用户调用
2:将new的指针改为智能指针