问题标签 [incomplete-type]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6717 浏览

c++ - C++ 系统文件 bits/stat.h 突然中断,出现“错误:字段 'st_atim' 的类型不完整”

我正在将一个已知可以工作的大型旧系统移植到 Ubuntu 64 位 Linux 上。系统使用FLTK,升级到1.3.2,我用的是NetBeans。文件包括基本通用 /FL/Fl.H 作为其第一行。这包括较新的 unicode 启用程序 /FL/fl_utf8.h。这包括系统文件<sys/stat.h>,然后包括系统文件<bits/stat.h>。当把它连接起来,并且 -I 包括各种不同的目录时,突然系统文件在编译时中断:

最新的 FLTK 不工作了吗?对 64 位过敏?互联网提示系统头文件中的错误?glibc 不兼容?添加_GNU_SOURCE?不要 USE_MISC 吗?博客里有很多乱七八糟的东西,这是怎么回事?

0 投票
1 回答
41519 浏览

c++ - C++ 前向声明和“不允许不完整类型”错误

我有两个类(或者更好的是,头文件)是我的 C++ 程序的一部分,我根本无法让这一切正常工作!作为我的应用程序的一部分,他们基本上需要彼此的数据才能正常运行。

不要通过阅读这段代码来折磨自己;我只需要解决前向声明相互包含问题,所以只看一下对这个问题很重要的代码部分。

错误发生在最后的第二个代码片段中(我不得不从第一个片段中删除大量代码,所以我可以发布问题,我想这与我的问题无关)。

introForm.h

测验表格.h

你在这 2 段代码中看到的是我在网上找到的拼图,哈哈。:)

我的目标:能够在 QuizForm 中使用来自introForm变量

提前致谢!鲍里斯·J。

0 投票
1 回答
265 浏览

c - 不完整的数组类型是否保证能够存储一个元素?

在著名的Struct hack中使用了不完整的数组类型,并且从 c99 标准开始就允许使用它们。在 c99 标准之前,这些是不允许的。我正在查看标准,但无法得出结论:

结构之外是否允许不完整的数组类型?(我在标准 C99:6.7.2.1.15 中找到的所有参考资料都将其作为结构中的最后一个元素进行讨论)。

那么是否允许按照标准编译以下程序?

我的问题的第二部分是,如果允许这样做,则array保证能够存储它们类型的至少一个元素int

0 投票
1 回答
999 浏览

c++ - 在这种情况下如何使成员函数成为朋友函数?

我对如何使用友元函数完成以下操作有点困惑。

假设我有一个类 A,其成员函数“f”将被声明为类 B 的朋友。

据我了解,正常的解决方案是这样的:

定义 A 类,仅声明未定义“f”

定义 B 类,包括“f”的朋友声明

定义'f'

现在,如果 A 类具有 B 类类型的数据成员或 B 类型元素的容器,如 vector < B >,该怎么办。

前向声明 B 类似乎有效(即没有编译器警告/错误),但我不确定它是否符合 C++11 标准。此外,这样的解决方案不允许我使用 B 类的构造函数为 A 的 B 类类型成员提供类内初始化程序。按照 C++11 完成所有这些的最佳方法是什么?

我尝试从标准本身中找到解决方案,但找不到提到这种情况。如果有人能指出我会很高兴。

PS我真的是一个初学者,所以请不要在你的答案中假设。不过我不介意详细的答案:)

0 投票
2 回答
291 浏览

c++ - 为什么定义一个返回类型作为其类的方法不会给我一个“不完整类型”错误

据我所知,在定义具有对象返回类型的函数时,该类仅处于其前向声明状态,如下所示:

// 前向声明,将A设置为不完整类型

//error: A 是一个不完整的类型,我知道当它具有指针的返回类型或对该对象的引用时它可以正常工作。

但是当我定义一个返回类型作为其类的方法时:

它工作得很好。

我认为在类的定义中定义方法时,类仍然是不完整的类型。所以我认为它会提示类似于前者的错误,但它没有。有谁知道为什么?

在在这里寻求帮助之前,我已经搜索了很长时间。(我不擅长英语,所以我的描述可能会让你感到困惑。抱歉。)

0 投票
1 回答
621 浏览

c++ - C++调用接口方法导致VS2012中的指针不完整

我在使用接口 A 时遇到问题。

在尝试对存储在向量 aVec VisualStudio 中的任何指针调用 Initialize() 函数时,会显示“错误:未完成的类类型指针无效”。

有谁知道如何以一种允许我在基本指针上调用接口函数而不将其转换为特定实现类型的方式来实现这个接口?

错误发生在 main.cpp 中。我已将整个来源附在下面:

A.hpp:

A.cpp:

B.hpp:

B.cpp:

工厂.hpp

工厂.cpp

主文件

非常感谢你!异种

0 投票
1 回答
685 浏览

c++ - invalid use of incomplete type (nested class case)

how can I implement such an idea in C++ without getting into "invalid use of incomplete type" trouble?

0 投票
3 回答
394 浏览

c++ - 在处理异常时无效使用不完整类型

如何在没有与“无效使用不完整类型”相关的麻烦的情况下实现以下内容?

更新:错误日志:

请注意,名称已更改,因此错误日志中的字符数不正确。

0 投票
1 回答
556 浏览

c++ - 在 CRTP 中的类内引用结构定义

我正在使用静态多态性(CRTP 方法)来创建类层次结构。这个想法是在基类中使用派生类中定义的结构。但是,VC10 会产生以下错误:

error C2039: 'param_t' : is not a member of 'D'

和英特尔 C++ 生成以下错误:

error : incomplete type is not allowed

Derived::param_t是一种struct类型,应该正常编译,这很令人困惑。请指出代码中的问题。谢谢。

0 投票
1 回答
221 浏览

c++ - 如何在 C++ 中的不完整类型上最好地使用多态性

我一直在看 stackoverflow 和 google 一段时间,但我似乎无法找到关于循环引用、不完整类型和多态性的具体问题的答案。

我希望我可以在不发布大量代码的情况下解释这个问题,但是如果我失败了,请告诉我,我会尝试写一个简单的例子。

我有 2 个类,它们都相互使用(比如 COne 和 CTwo 类)。此外,COne 类有一个基类(比如 BaseOne)。

我使用标题保护(如果你这么称呼它们)和不完整的类型来“解决”循环依赖问题。

在顶部的头文件中:

并在 C++ 文件顶部的某处用于 CTwo:

现在遇到的问题是,由于类型不完整,编译器似乎不知道COne是从BaseOne派生的。所以在一个返回类型为 BaseOne* 的函数中,我想返回一个 COne*,这应该是可能的,因为它是一个向下转换,但它说它们不是同一类型。我现在使用 C 风格的演员修复了这个问题

我想问的是:有没有比使用 C 风格转换更好的方法来解决这个问题?