C++ 我在处理我创建的对象时出错

C++ 我在处理我创建的对象时出错,c++,visual-studio-2010,C++,Visual Studio 2010,我似乎无法理解这一点,它可能很简单。我有一个customer类,我试图创建一个对象形式,它不工作,我得到一个未声明的标识符错误和语法错误;标识符c1之前缺少。谢谢 class Customer{ string customerID; string list; public: Customer(void); ~Customer(void); string getcustomerID(){ return customerID; }

我似乎无法理解这一点,它可能很简单。我有一个customer类,我试图创建一个对象形式,它不工作,我得到一个未声明的标识符错误和语法错误;标识符c1之前缺少。谢谢

class Customer{
    string customerID;
    string list;
public:
    Customer(void);
    ~Customer(void);



    string getcustomerID(){
        return customerID;
    }
    string getList(){
        return list;
    }
    void setcustomerID(string x){
        customerID = x;
    }
    void setList(int x){
        if(x==1)
            list = "bread";
        if(x==2)
            list = "eggs";
        if(x==3)
            list = "cheese";
    }

};




void checkout(){

    srand(time(NULL));
    int random = rand() % 3 + 1;

    Customer c1;
    c1.setcustomerID(0);

您需要一个默认构造函数(和析构函数)。如果您想要一个非常简单的(并将其编译)只需执行以下操作:

Customer() {}
~Customer() {}
编辑:
KerrekSB是对的,在这种特殊情况下,最好不要定义或声明它们中的任何一个。

你没有在任何地方定义构造函数。最后我声明了一个对象,但它不会发生。这意味着你没有在任何地方定义构造函数
Customer(void)
,你只声明了它。您缺少它的代码。另外,注意C++中不需要为空参数列表指定<代码>空洞< /代码>。您可以只使用空括号(
Customer()
)。这是否意味着我需要在方法中使用Customer c1=new Customer()?这样定义析构函数没有意义。相反,这使得你的类无缘无故有一个非平凡的析构函数,所以这实际上是不可取的。我想我在第5行和第6行有这个析构函数。@user1504257,你的没有定义。另外,如果没有其他构造函数,也可以省略构造函数。@user1504257,注意区别,这个客户(void);与此不同的是:Customer(){}@KerrekSB谢谢,完全同意你的意见,只是试图简化事情。