实际应用中总会遇到各种错误,比如我在.h文件里定义了一个结构体,并且.cpp文件包含了该头文件,结果在头文件里使用,却无法识别该类型。百思不得其解,后来才发现,原理是这样子的。
1, 我头文件里定义了一个类,类中包含了很多成员变量和成员函数。 源文件里是这些成员函数的实现,成员函数的实现,一般是这样子写的:
返回值类型:MultiBandBlender(定义的类名)::(函数名){}
1, 我头文件里定义了一个类,类中包含了很多成员变量和成员函数。 源文件里是这些成员函数的实现,成员函数的实现,一般是这样子写的:
返回值类型:MultiBandBlender(定义的类名)::(函数名){}
定义了一个类,在头文件里定义了一个结构体 ,在源文件里,在函数实现内部可以使用,但是作为函数返回值就不行了,无法识别。
原因: 结构体定义在类里,源文件函实现,前面会带有类名,所以可以识别,作为函数返回值,前面没有类名,所以无法识别。
解决办法: 1,把结构体定义在类名外面。 2,在函数返回值前面加上类名。