incomplete-type

    3热度

    4回答

    考虑以下几点: class Incomplete; class Complete { Incomplete* Foo; // Will only compile if Foo is a pointer. }; class Incomplete { Complete Bar; // Bar can be a pointer or an object. }; 如

    5热度

    1回答

    我如何声明B的构造函数是A的朋友?我试过了: class A { private: A(); public: friend B::B(); }; class B { public: B(); };

    3热度

    1回答

    参考here 即析构函数将也隐含 呼叫的auto_ptr 对象的析构函数。而这将删除 指针其持有,这点到C 对象 - 不知道C的 定义!这出现在定义了结构A的构造函数 的 .cpp文件中。 这是好奇然后 5.3.5/5状态 - “如果要删除的对象具有不完整的类型在 缺失的点和完全 类具有一个非平凡析构函数或 解除分配函数,则行为 未定义。“ 我的问题是,为什么不是这样的一个程序,试图删除指向不完整

    6热度

    3回答

    quaternion.h:15:错误:字段'v'有不完整类型 嗨!我被困在一个我似乎无法解决的错误上。 下面是我的代码: #ifndef QUATERNION_H #define QUATERNION_H #include "vec3.h" class Vec3; class Quaternion { public: Quaternion(Vec3 v); Quater

    0热度

    4回答

    我已经摆脱了循环依赖,但仍然有其他问题的问题。 我仍在学习,并希望有人能够向我解释更多关于我的实现有什么问题。对不起,我很感激每个帮助我的人。 因此,我现在遇到的问题是,在我的Vec3类中,它试图使用Quaternion,但它没有“完整类型”的四元数。 以下是我有: vec3.h #ifndef VEC3_H #define VEC3_H #include "point.h" #i

    5热度

    2回答

    当使用智能指针与PIMPL方法,如 struct Foo { private: struct Impl; boost::scoped_ptr<Impl> pImpl; }; 明显的问题是,Foo::Impl是残缺的地步生成Foo的析构函数。 编译器通常会在那里发出警告,并且boost::checked_delete(由Boost智能指针在内部使用)静态声明类Foo::