动态创建新结构

时间:2011-04-05 07:15:12

标签: c++

我(非常)对C ++很陌生,并且在理解结构方面遇到了一些问题。我正在使用课程中的示例代码,所以我有:

struct Point {
   int x;
   int y;
}

在另一段代码中,我想写下以下内容:

drawLine(point1, new Point(x, y));

这不起作用,我知道我试图声明一个结构就好像它是一个类,但有没有办法做到这一点?我目前编写了一个辅助函数,它从x,y返回一个Point,但这看起来很迂回。

3 个答案:

答案 0 :(得分:9)

问题不是你试图将结构声明为类(事实上,there's very little difference between the two in C++)。

问题是你试图从两个Point构造一个ints,并且没有合适的构造函数。以下是如何添加一个:

struct Point {
   int x;
   int y;
   Point(int x, int y): x(x), y(y) {}
};

答案 1 :(得分:3)

new返回一个指针。如果为drawLine(point1, Point(x,y))定义适当的构造函数,则只需Point即可。

drawLine(point1, *(new Point(x,y)))也可以,但会引入内存泄漏;每个new应该由delete平衡。)

答案 2 :(得分:0)

c ++中struct和class之间的区别并不大。为什么不在结构中添加构造函数?