如何获取指针值?C++
How do i get pointers value? C++
所以我想从向量的一项中获取值。矢量包含行项目。直线具有指向顶点*p1和顶点*p2的指针。顶点有x和y的域。我怎么能让我的代码给我x和y值呢?
for(Line<Vertex> line : lines){
painter.drawLine(line.p1->x + 5, line.p1->y + 5, line.p2->x + 5, line.p2->y + 5);
}
线路等级如下:
template<class T>
class Line {
public:
T *p1;
T *p2;
Line (T *v1, T *v2)
: p1(v1),
p2(v2)
{}
Line (const Line& l){
if(this != &l){
p1 = l.p1;
p2 = l.p2;
}
}
Line& operator= (const Line& l) {
if (this == &l)
return *this;
p1 = l.p1;
p2 = l.p2;
return *this;
}
~Line (){
}
};
顶点类别:
class Vertex {
public:
float x = 0;
float y = 0;
Vertex() = default;
Vertex(float nx, float ny);
float distanceFrom(Vertex v);
};
Main:
std::vector<Line<Vertex>> lines;
Vertex *firstPoint;
Vertex *secondPoint;
bool firstPointChosen = false;
bool secondPointChosen = false;
if(!firstPointChosen){
for(Vertex vertex : vertices){
firstPoint = &vertex;
firstPointChosen = true;
break;
}
}
else{
for(Vertex vertex : vertices){
secondPoint = &vertex;
secondPointChosen = true;
break;
}
}
if(firstPointChosen && secondPointChosen){
Line<Vertex> line(firstPoint, secondPoint);
lines.push_back(line);
update();
firstPointChosen = false;
secondPointChosen = false;
}
for(Line<Vertex> line : lines){
painter.drawLine(line.p1->x + 5, line.p1->y + 5, line.p2->x + 5, line.p2->y + 5);
}
如何使第一个代码块返回我添加到行向量的每一行的x和y值?
目前它没有返回任何内容,或者我理解错误。
编辑:主类要大得多,但它是按这个顺序调用的。首先,它选择第一个顶点,然后选择第二个顶点。如果两个顶点都被选中,它会用这两个顶点生成一条新线,但由于某种原因,它们没有值或其他什么。
应该是另一种方式:
线的点值和顶点的成员
for(Line<Vertex> line : lines){
painter.drawLine(line->p1.x + 5, line->p1.y + 5, line->p2.x + 5, line->p2.y + 5);
}
如果该类具有
T* pointerToMember;
T member;
你应该用->
获得有针对性的成员和具有.
的成员
obj->pointerToMember;
obj.member;
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 何时在引用或唯一指针上使用移动语义
- QMetaObject invokeMethod的基于函数指针的语法
- 如何从 std::atomic 中提取指针 T<T>?
- 如何在 C# 中映射双 C 结构指针?
- C++将浮点指针值舍入为小数位数
- 为什么++(*p)更改指针值
- 调整大小后指向元素值的指针unordered_map有效?
- 正在将指针转换为范围
- 使用指向成员的指针将成员函数作为参数传递
- 将OpenCV C++重写为EmguCV C#-如何使用指针
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错