c – 如何从上面定义的类中访问类?
发布时间:2020-12-16 09:38:14 所属栏目:百科 来源:网络整理
导读:如果我有A和B类,我如何在A中创建对B的引用?我读到你需要使用指针或引用,但我找不到更多.这是我正在谈论的一个例子: class B;class A { public: B * b_pointer; void setSelf(B * given_b_pointer) { b_pointer = given_b_pointer; }; void printBName() {
如果我有A和B类,我如何在A中创建对B的引用?我读到你需要使用指针或引用,但我找不到更多.这是我正在谈论的一个例子:
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; }; } 这给了我几个错误.我做错了什么,我该如何解决? 编辑:相关的错误消息:
稍微编辑的错误消息,用psuedo-class名称替换实际的类名. 解决方法
[更新]您需要转发声明类B,并且在声明类之前不能使用类中的任何B成员,因此将printBName的声明移动到代码文件中.
class B; //Forward declaration class A { public: B * b_ref; ... void printBName(); //Need to forward declare this as well }; class B { ... }; //Now define printBName void A::printBName(){ print (b_ref->my_name);// use -> to dereference b_ref } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |