弹指间LLL 2015-08-17 05:59 采纳率: 100%
浏览 1785
已采纳

一个C++小程序运行错误,求大神帮忙看看

#include
#include "stdafx.h"
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop /
class cartp
{
public:
virtual char
getcar()=0;
};
class BMW:public cartp
{
public:
char* getcar()
{
return "BMW";
}
};
class BENZ:public cartp
{
public:
char* getcar()
{
return "BENZ";
}
};
class carfactory
{
public:
static cartp* getcarname(char* name)
{
if(name=="BMW")
{
return new BMW();
}
else if(name=="BENZ")
{
return new BENZ();
}
else
{
return NULL;
}
}
};
int main(int argc, char** argv)
{
char name[20]={0};
char* car=name;
cout<<"input cartype:";
cin>>name;
cartp* cc=carfactory::getcarname(car);
cout<<"type is"<getcar()<<endl;
return 0;
}

  • 写回答

9条回答 默认 最新

  • 纵横车 2015-08-17 06:15
    关注
     class cartp
    {
    public:
        virtual char* getcar()=0;
    };
    
    class BMW:public cartp
    {
    public:
        char* getcar()
        {
            return "BMW";
        }
    };
    
    class BENZ:public cartp
    {
    public:
        char* getcar()
        {
            return "BENZ";
        }
    };
    
    class carfactory
    {
    public:
        static cartp* getcarname(char* name)
        {
            if(strcmp(name,"BMW") == 0)
            {
                return new BMW();
            }
            else if(strcmp(name,"BENZ") == 0)
            {
                return new BENZ();
            }
            else
            {
                return NULL;
            }
        }
    };
    int main(int argc, char** argv)
    {
        char name[20] = {0};
        char* car = name;
        cout<<"input cartype:";
        cin>>name;
    
        cartp* cc = carfactory::getcarname(car);
        cout<<"type is"<<cc->getcar()<<endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?