gpt4 book ai didi

c++ - 添加创建类 C++ 的方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:41:51 24 4
gpt4 key购买 nike

你好,我在某个头文件中有一个类。假设它看起来像这样:

class MyClass
{
private:
int ID;
void method1();
public:
MyClass(int ID){this->ID = ID;};
void method2();
}

编辑:我需要两个对象,它们都具有与 MyClass 相同的结构 + 有一些自己的方法(它们都没有任何参数并且将返回 void - 就像 method1(),但具有不同的实现).我还需要定义类型,它可以指向此处创建的新方法。所以我可以将它们作为一种类型传递给另一个函数。我最不需要的是从新方法访问 MyClass 的属性和方法。

最佳答案

如果不更改此类,则无法向现有类添加新方法。

如果你想使用一个丰富的类来添加新的方法方法,你需要做的就是:

class MyEnrichedClass : public MyClass {
public:
MyEnrichedClass (int ID) : MyClass(ID) {}
void myNewFantasticMethod (...) { ... }
};

在您添加的方法中,您可以访问基类的所有公共(public)和 protected 成员(但不能访问私有(private)成员)。

如果您事先知道您需要一个具有明确定义的签名并用于特定目的的方法,但您想动态定义它,您可以将函数对象作为成员并让您的方法调用该函数对象(或函数指针,如果你愿意的话)。但是您的动态函数既不能访问私有(private)成员也不能访问 protected 成员。

关于c++ - 添加创建类 C++ 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27203762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com