有关QT中声明一个vector为全局变量的初始化问题
来源:互联网 发布:python 字符串相似度 编辑:程序博客网 时间:2024/06/14 03:29
前面说了一个简单的int类型全局变量,是怎么实现的,但是对于更复杂一点的vector类型,上面的方法固然可以借鉴,但是初始化的问题应该是不一样的。
全局变量:在头文件的类中声明,在cpp文件的函数体外面进行初始化。基本的套路就是这样的
类的静态变量必须在类外初始化,这个懂吧!
来个具体点儿的
STLView.h
class STLView{public: STLView(); //声明构造函数 bool readSTL(const QString &fname); //读取STL数据 QVector<MyTriangle> triangleVector; //三角面的集合 static int splitString(const QString &str, char split, QVector<QString>& strArray); //是一个静态成员函数 double triangleZMax,triangleZMin; //定义所有三角面片的z坐标最大值和最小值 static bool comp(const MyTriangle &a, const MyTriangle &b); //排序函数,按照MyTriangle.zmin的值排序;QVector序数越大,zmin越大;升序排列,,这里必须写成静态成员函数 //如果存在三角形a和b的zmin相同,那么看a和b在STL文件中的顺序,排在前面的话,最终在QVector里面排后面// double read();// MyPoint lineDir,testPoint; //定义两点直线的方向,测试点 QVector<CrossPoint> CrossPointVector; //交点容器 static QVector<QPointF> vector; //设置轮廓二维点信息,定义一个向量存储QPoint类型的点 static QPointF point; static int a; //定义全局变量 double ZLevel; //定义z平面的值 double Dist(MyPoint P1, MyPoint P2); //计算两点距离 bool Between(MyPoint P1, MyPoint P2, MyPoint P3); //判断point3是否在point1和point2之间};
STLView.cpp
#include "STLView.h"#include <QFile>#include <QTextStream>#include <QDebug>#include <QtAlgorithms>//数据排序#include <QList>int STLView::a = 11111; //int类型初始化QPointF STLView::point = QPointF(1,1); //vector类型初始化QVector<QPointF> STLView::vector = QVector<QPointF>();STLView::STLView() //默认构造函数,带有数组的声明必须有默认构造函数{}
有一个问题不得不重视:
就是在给QPointF类型的vector赋初值的时候,一般的vector赋值都是用append,push_back ,但是这两个函数呢,它们必须在函数内部使用;然而我们要在函数
外部给全局变量vector赋值,显然append,push_back是不管用的,所以我们调用了vector的构造函数,之后再在类的构造函数插入或者赋值。
最后,谢谢大连(27754587)威哥
阅读全文
0 0
- 有关QT中声明一个vector为全局变量的初始化问题
- 全局变量的声明的问题
- vector的初始化问题
- vector的初始化问题
- Vector中作为全局变量时注意的问题(转)
- 有关于在Java 类的静态初始化块中创建一个自身实例的问题。
- QT 声明全局变量
- QT C++中全局变量问题
- javascript中全局变量无法正常初始化的问题解疑
- C中全局变量和局部变量的初始化问题
- C++中有关各种变量声明和定义的问题
- 一个有关全局变量引发的错误。
- var声明用来计数的循环变量泄漏为全局变量问题
- static lib中全局变量初始化问题
- 全局变量的定义、声明、应用问题综合
- 关于C++全局变量声明的问题
- android中为常用的Context对象 设置一个全局变量
- 对于vector初始化的问题
- 微信小程序开发指南
- UCAS计算机网络实验
- 欢迎使用CSDN-markdown编辑器
- Maven本地安装和配置
- batch normalization的tensorflow实现
- 有关QT中声明一个vector为全局变量的初始化问题
- linux centos7安装nginx
- HTTP中GET和POST方法的区别
- 数据结构-树
- TensorRT Samples: GoogleNet
- unity的ugui中文竖排
- VS多线程下如何调试单线程
- ORA-00257: archiver error. Connect internal only, until freed.
- 新一代大数据可视化展示系统,追求全员数据化