如果类"A"具有指向另一个类的指针,则"B" A 可以访问 B 类公共方法
If a class "A" has a pointer to a another class "B" can A access class B public methods
刚从c编程转移到c++,每天都在学习。 我遇到了一些编译问题. 假设我有一个类Element
,类Log
和另一个派生类Element
称之为Rx
。现在从第Log
类我想访问class Element
公共方法。如果您认为我的做法不正确,请提出一些方法。 我尝试的第一种方法是在类Log
中添加指向Element
类的指针,然后尝试访问该方法。 第二种方法我试图将引用/指针传递给类Log:initialize(Element *element)
。 在下面添加代码片段。
方法1:
class Element {
public:
void add_handler(int param);
// ..... other member and methods
}
class Rx: public Element {
//...... other methods
Log record;
}
class Log {
public:
void initialize() {
e->add_handler(10);
}
private:
Element *e;
}
方法2:
class Element {
public:
void add_handler(int param);
// ..... other member and methods
}
class Rx: public Element {
public:
// ...... other methods
Log record;
}
class Log {
void initialize(Element *element) {
element->add_handler(10);
}
private:
Element *e;
}
在两个代码中,我都收到相同的错误"错误:无效使用非静态成员函数",该错误位于函数初始化中,我正在尝试访问e->add_handler
。
很想了解为什么会出现错误,以及您是否有任何建议。
现在对于非静态函数,该类没有任何内存,因此语句e->add_handler
它是否指向任何内存?我假设不是,那么编译如何解决它?
感谢大家的任何帮助。
add_handler()
未在public:
下定义 :-(
成员函数(也称为方法(在使用class
关键字时默认private:
(即如果未指定任何内容(public:
指定struct
。
相关文章:
- 通过方法访问结构
- 为了访问方法,从基类动态转换为派生类
- 访问方法的返回类型
- 是否有对 Clang 递归 ASTVisitor 的最终访问方法
- 具有各种访问方法的自定义数据结构
- 另一个子模块错误的 omnet 访问方法 - 调用 'check_and_cast(cModule*&)' 没有匹配函数
- 使用矢量迭代器访问方法
- 从其他 C++ 文件访问方法
- C++箭头运算符重载.如何获取被访问方法的名称
- 访问方法C++时出现问题
- 易失性成员的访问方法
- 在实例化之前访问方法
- 是否不希望将指针存储在具有不同访问方法的多个容器中?
- 在c++中查看类中基于参数的私有变量的访问方法
- 在继承错误之后访问方法
- 最好的方法访问方法的派生类c++
- 是否存在具有多访问方法的可变模板变体
- 为指向类的指针数组制定访问方法时遇到问题
- 转发类,无法访问方法
- 我可以在 Python 中创建我的 C++ 对象,但无法访问方法