将数据从头文件获取到源文件中的非成员函数中
Get data from header file into non-member function in source file
我有一个像BigArr,arr,...在标头中声明:
class TableView:public QWidget
{
Q_OBJECT
public:TableView (QWidget * parent = 0);
std::vector < TXdata > BigArr;
std::vector < float > arr;
std::vector < float > arr2;
std::vector < int > arrlocKtab;
std::vector < int > arrlocKrow;
在源文件中,我有一些从其他地方复制/粘贴的功能,例如:
static void
multiply (float q[4], float value)
{
q[0] *= value;
q[1] *= value;
q[2] *= value;
q[3] *= value;
}
以及我制作的其他一些功能,例如:
void
TableView::ShowContextMenu (const QPoint & pos) // this is a slot
{
如何从头文件中获取声明以在复制/粘贴函数中工作。喜欢:
static void
multiply (float q[4], float value)
{
arr[0]= something...
通过将 c/p 函数重命名为 void TableView::function 并将它们添加到头文件中的函数列表中,我得到了一些不好的结果。可能与静态空洞和静态内联空隙有关......泰
您必须将乘法函数定义为 TableView 类的一部分,如下所示:
class TableView:public QWidget
{
...
void multiply(float q[4], float value);
...
};
然后在源文件中定义它,如下所示:
void TableView::multiply(float q[4], float value)
{
...
arr[0] = something;
...
}
或者,如果您不能/不想使 TableView 成为 TableView 的成员,请将 TableView 的实例传递到 multiply(( 中。如果您决定将 TableView 的实例传递给函数,则必须考虑如何通过创建 getter 函数或将它们公开来访问类成员。吸气器接收器功能是一个更清洁的解决方案。
无论哪种方式都有效,但是如果您决定使所有成员函数都有效,请考虑设计并确保类不会变得臃肿,称为低内聚:en.wikipedia.org/wiki/Single_responsibility_principle
相关文章:
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 将公共但非静态的成员函数与ALGLIB集成
- 使用指向成员的指针将成员函数作为参数传递
- 将重载的成员函数传递给函数模板
- 我不小心调用了一个没有自己类对象的成员函数.但这是怎么回事呢
- 如何在C++中使用非静态成员函数作为回调函数
- C++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)
- 关联容器的下界复杂性:成员函数与非成员函数
- 在 C++ 中用派生类型重写成员函数
- 链表的泛型函数remove()与成员函数remove)
- 如何将lambda作为模板类的成员函数参数
- constexpr构造函数需要常量成员函数时出现问题
- 将自由函数绑定为类成员函数
- 区分非成员函数和头文件中的成员函数
- 如何从子成员函数修改父公共成员变量
- 保留对其他类的成员函数的引用
- 在运算符重载定义中使用成员函数(const错误)
- 内联如何影响模块接口中的成员函数
- 将成员函数指针作为参数传递给模板方法