编写没有库类的库类的构造函数

时间:2015-08-04 20:28:42

标签: c++ struct constructor

我正在使用第三方库中的结构将参数传递给库函数。

我希望有一个构造函数允许我快速创建一个结构,但是库没有提供结构。

有没有办法在我自己的代码中定义库外部的构造函数?如果没有,那么其他人是否会看到一个优雅的解决方案?

我的动机是我会节省一些速度,因为我不需要两次构造每个结构成员。

此外,我的代码更具可读性,因为我可以将结构创建压缩成一行而不是多行。

我想离开这个:

Point newPoint;
newPoint.x = someXValue;
newPoint.y = someYValue;

对此:

Point newPoint(someXValue, someYValue);

3 个答案:

答案 0 :(得分:7)

如果您使用的是C ++ 11,则可以构造为:

Point newPoint {someXValue, someYValue};

如果你不是,假设这是一个POD结构,你可以:

Point newPoint = {someXValue, someYValue};

答案 1 :(得分:4)

使用工厂方法。但是你会得到另一个功能。

Point CreatePoint(int x, int y)
{
    Point temp;
    temp.x=x;temp.y=y;
    return temp;
}

答案 2 :(得分:0)

这在性能视角或可读性方面可能不是最好的,但它是基本的,所以我只是在这里列出。

class MyPoint : public Point {
public:
    MyPoint(int x, int y) { ... }
};

将对象构造为MyPoint,然后可以直接将其传递给库函数。