
class B;class A { public: B * b_pointer; voID setSelf(B * given_b_pointer) { b_pointer = given_b_pointer; }; voID printBname() { print (b_pointer.my_name); };};class B { public: string my_name; voID setSelf(string my_given_name) { my_name = my_given_name; };} 这给了我几个错误.我做错了什么,我该如何解决?
编辑:相关的错误消息:
error: request for member ‘my_name’ in ‘((B*)this)->A::b_pointer’,which
is of non-class type ‘B*’.
稍微编辑的错误消息,用psuedo-class名称替换实际的类名.
解决方法 [更新]您需要转发声明类B,并且在声明类之前不能使用类中的任何B成员,因此将printBname的声明移动到代码文件中.class B; //Forward declarationclass A { public: B * b_ref; ... voID printBname(); //Need to forward declare this as well};class B { ...};//Now define printBnamevoID A::printBname(){ print (b_ref->my_name);// use -> to dereference b_ref} 总结 以上是内存溢出为你收集整理的c – 如何从上面定义的类中访问类?全部内容,希望文章能够帮你解决c – 如何从上面定义的类中访问类?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)