关于C++自定义类 在其他文件中函数形参引用传递的错误

// 类定义
#ifndef _MATFF_H_
#include "utils_hardware.h"
class MatFF
{
public:
// data element
int resolution;
Mat m;
MatFF() {};
MatFF(const Mat &src, int resolution);
MatFF(const MatFF &mf2);
void create(const Mat &src, int resolution);
void copyTo(MatFF &mf2);
~MatFF() {}

int min();
int max();
// IO function
void toFile(string fileName);

};

// ---------------------------------------------在其他文件中调用:
// h 文件
#include "MatFF.h"
void abc(MatFF a);

出现:

1>e:\hakaze\config\lib_hakaze\utils_hardware.h(65): error C2146: syntax error : missing ')' before identifier 'a'
1>e:\hakaze\config\lib_hakaze\utils_hardware.h(65): error C2182: 'abc' : illegal use of type 'void'

//utils_hardware.cpp
出错的部分
// cpp文件
void abc(MatFF a)
{
cout << a.m << endl;
}

这是统一文件的其他部分:
在函数中使用MatFF 声明其他变量就没有问题。
// cpp 文件
void GaussianKernel5(const Mat &src,
Mat &dst,
int resolutionSrc,
int resolutionCoefficient,
int resolutionDst,
int computeType)
{
MatFF mf;

第1个回答  2013-11-24
不是结构的问题吧,abc函数里面a前面是不是要加个“&”?
相似回答