初始化结构

时间:2017-03-06 06:05:21

标签: c++ pointers struct initialization

在我的程序中,我有结构:

double GetDistance(Slot slot1, Slot slot2)
{
    SlotPoint point1 = ConvertCityToWorld(slot1), point2 = ConvertCityToWorld(slot2);

    return GetDistance(point1.X, point1.Y, point2.X, point2.Y);
}

编辑:我需要创建

query = ("""Insert into iot_sensors (Sensor_ID, Location, Sensor_IP, Sensor_1, Sensor_1_Unit, Sensor_2, Sensor_2_Unit, Sensor_3, Sensor_3_Unit) values
                    ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}');""".format(Sensor_ID,Location,Sensor_IP,Sensor_1,Sensor_1_Unit,Sensor_2,Sensor_2_Unit,Sensor_3,Sensor_3_Unit))
mycursor.execute(query)

使用函数query = ("""Insert into iot_sensors (Sensor_ID, Location, Sensor_IP, Sensor_1, Sensor_1_Unit, Sensor_2, Sensor_2_Unit, Sensor_3, Sensor_3_Unit) values (%s,%s,%s,%s,%s,%s,%s,%s,%s);""" % (Sensor_ID,Location,Sensor_IP,Sensor_1,Sensor_1_Unit,Sensor_2,Sensor_2_Unit,Sensor_3,Sensor_3_Unit)) mycursor.execute(query) 对其进行初始化 我的问题是,如何定义功能? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您的Path可能就像:

struct Path {
    point* points;
};

void init_path(Path *path, int size) {
    path->points = new point[size]();
}

但为什么你的教授想要一个函数而不是正确的构造函数/析构函数仍然是个谜。在这里,您仍然需要在delete[]某处调用points。使用以下结构,您不需要任何init函数,对象将正确删除其资源。

struct Path {
    Path(unsigned size) : points{ new point[size] } {}
    ~Path() { delete[] points; }
    point* points;
};