PointF
это не класс, это структура. Вы не можете иметь ссылки на структуру, не помещая ее внутрь объекта.
Вы можете иметь список Object
ссылок и распаковывать ссылку на PointF
всякий раз, когда вы его используете, или список пользовательских классов, инкапсулирующих значение PointF
.
С неявными преобразованиями в и из значения PointF
вы можете сделать прозрачными упаковку и распаковку. Я не уверен, как вы пишете это в C ++, но в C # это будет выглядеть так:
public class PointFObject {
// encapsulated PointF structure
private PointF _value;
// constructor
public PointFObject(PointF value) {
_value = value;
}
// implicit conversion to a PointF value
public static implicit operator PointF(PointFObject obj) {
return obj._value;
}
// implicit conversion from a PointF value
public static implicit operator PointFObject(PointF value) {
return new PointFObject(value);
}
}
Теперь вы можете создать список PointFObject и обращаться к ним как к списку значений PointF:
List<PointFObject> pointList = new List<PointFObject>();
pointList.Add(new PointF(0f, 0f));
PointF p = pointList[0];