在编译程序是出现了如下错误,
类或结构体的前向声明只能用来定义指针对象或引用,因为编译到这里时还没有发现定义,不知道该类或者结构的内部成员,没有办法具体的构造一个对象,所以会报错。
将类成员改成指针就好了。 程序中使用incomplete type实现前置声明有助与实现数据的隐藏。要求调用对象的程序段只能使用声明对象的引用或者指针。
将类成员改成指针就好了。 程序中使用incomplete type实现前置声明有助与实现数据的隐藏。要求调用对象的程序段只能使用声明对象的引用或者指针。
在显式声明异常规范的时候不能使用incomplete type。
如果想引用别的头文件中定义的结构体,而且又做到发布时不依赖其头文件,就需要在你的头文件中对这个结构体进行前向申明。而前向申明的方式也有一点考究。
1.如果结构体定义如下:
- typedef struct tag_test
- {
- ULONGLONG utime;
- ULONGLONG umac;
- }test;
你在申明的时候就必须申明为:
- typedef struct tag_test test;
2.如果结构体定义如下:
- struct test
- {
- ULONGLONG utime;
- ULONGLONG umac;
- };
这样申明就可以了:
- struct test;