如何用C ++中的给定代码创建函数?

时间:2014-04-05 09:53:06

标签: c++

给予创建Customer的函数CreatCustomer()。原型:

Customer*CreatCustomer(const string&name, const string&id, const string&pin)

给定的代码如下所示。结构由我自己完成。

问题是如何使用这个给定的代码和原型创建一个函数。

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

struct Customer
{
string CustomerName;
string UserID;
string Pin;
};
int main()
{
Customer* Mary = CreateCustomer("Mary Jones", "235718", "5074");
Customer* John = CreateCustomer("John Smith", "375864", "3251");
}

2 个答案:

答案 0 :(得分:3)

首先,在您的情况下,您甚至不需要该功能,您可以这样做:

Customer Mary { "Mary Jones", "235718", "5074" };
Customer John { "John Smith", "375864", "3251" };

但如果你真的需要,你应该使用一个构造函数:

struct Customer
{
    std::string CustomerName;
    std::string UserID;
    std::string Pin;
    Customer(std::string a, std::string b, std::string c)
        : CustomerName(a)
        , UserID(b)
        , Pin(c)
        {}
};

我没有告诉你如何直接这样做的原因是因为返回类型中的指针告诉我有人告诉你在函数内部使用动态内存分配并返回指向它的指针。那是一个非常糟糕的主意

但是因为脚是你的,而我不是来照顾霰弹枪,所以你的拍摄方式如下:

Customer* CreateCustomer(const string&name, const string&id, const string&pin) {
    return new Customer { name, id, pin };
}

答案 1 :(得分:0)

Customer*CreatCustomer( const string &name, const string &id, const string &pin )
{
   return new Customer { name, id, pin };
}

或者如果编译器不支持初始化列表,那么

Customer*CreatCustomer( const string &name, const string &id, const string &pin )
{
   Customer *c = new Customer;

   c.->CustomerName = name;
   c->UserID = id;
   c->Pin = pid;

   return c;
}