c++ A类包含B类指针,B类包含A类指针的情况
2015-05-06 10:47
176 查看
#include<stdio.h> class Bclass; class Aclass { public: friend Bclass; void func() { pB->funcB(); } int data; Bclass* pB; }; class Bclass { public: friend Aclass; void funcB() { p->func(); } Aclass* p; int data; }; int main() { return 0; }
编译结果:
1>------ 已启动生成: 项目: Abc, 配置: Debug Win32 ------
1> main.cpp
1>d:\cpptest\abc\abc\main.cpp(13): error C2027: 使用了未定义类型“Bclass”
1> d:\cpptest\abc\abc\main.cpp(5) : 参见“Bclass”的声明
1>d:\cpptest\abc\abc\main.cpp(13): error C2227: “->funcB”的左边必须指向类/结构/联合/泛型类型
A类里面包含B类的指针,并且方法里面调用B类的方法,B类里面包含A类的指针,同样也调用A的方法,搞了半天没搞定
找来大神,说:你虽然申明了B类,但是,编译器只是知道有这个东西,并没有实现方法,要把分开,头文件一个,cpp一个
class Bclass; class Aclass { public: friend Bclass; void func(); int data; Bclass* pB; }; class Bclass { public: friend Aclass; void funcA() { p->func(); } Aclass* p; int data; };
把实现放到cpp中
#include"Aclass.h" void Aclass::func() { pB->funcA(); }
完美解决。
启发c++写东西,还是要分开把类分在两个里面的,头文件一个,cpp一个
相关文章推荐
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- c++ 学习笔记(47)-C++中两个类中互相包含对方对象的指针问题
- C++调用一个成员函数的需求this指针的情况
- 【c++的深度剖析教程】拷贝赋值 拷贝构造 这一种是针对类中含有指针的情况
- C++中两个类中互相包含对方对象的指针问题(转载)
- c++多线程之死锁的发生的情况解析(包含两个归纳,6个示例)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- C++:指针作函数参数的情况
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- C/C++——声明一个到字符的指针,包含10个整数的数组,到包含10个整数的数组的引用,到字符串的数组的指针,到字符的指针的指针...
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- C++调用成员函数需要this指针的情况
- C++中当对象指针为空时,虚函数和非虚函数的调用情况
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- c++ 很隐蔽的指针访问越界的情况---在强制类型转换中发生
- C/C++中数组名退化为指针的情况
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)