在别处实现的实例摘要class?
Instance abstract class that is implemented elsewhere?
我正在为 3dsmax 制作一个插件 DLL。该 SDK 包含一个特定的 class 充满了纯虚函数,文档说这些函数是由 max 本身实现的。我知道这些函数已实现,因为 class 实例有时会通过我的插件中的函数传递到我的插件,这些函数最多从其核心 api 调用。
但是,如果我尝试在我的代码中实例化 class,我不能,因为它的所有功能在 3dsmax SDK 中都是纯虚拟的。
有什么方法可以告诉 c++ 编译器即使它看到的函数是纯虚拟的,它们是在其他地方实现的(在程序可见的另一个 .dll 中)?有问题的函数的声明不在任何 3dsmax .libs 或包含中...所以 100% 确定它们在我的代码范围之外....但它们是 在那里。
我是 c++ 的新手,如果这是一个愚蠢的问题,我深表歉意。
纯虚拟意味着它们没有针对 class 实现。 class 确实无法实例化,无论是对于您的代码还是 3dsmax 代码。
情况是 3dsmax 有 subclasses 确实提供了这些虚拟方法的实现。然后,它们通过指向抽象基 class 的指针为您提供对 subclasses 的那些实例的访问。但是您没有得到指向基 class 本身的实例的指针。
如果 3dsmax API 提供任何可以实例化的具体基础 classes,那么您应该实例化它们。如果没有,那么您将不得不按预期使用 API 来获取指向您想要的实例的指针。这是一件好事。您应该遵循 API.
不,您不能实例化抽象 class 的子 class,因为您没有可用的 class 定义(即头文件)。
我正在为 3dsmax 制作一个插件 DLL。该 SDK 包含一个特定的 class 充满了纯虚函数,文档说这些函数是由 max 本身实现的。我知道这些函数已实现,因为 class 实例有时会通过我的插件中的函数传递到我的插件,这些函数最多从其核心 api 调用。
但是,如果我尝试在我的代码中实例化 class,我不能,因为它的所有功能在 3dsmax SDK 中都是纯虚拟的。
有什么方法可以告诉 c++ 编译器即使它看到的函数是纯虚拟的,它们是在其他地方实现的(在程序可见的另一个 .dll 中)?有问题的函数的声明不在任何 3dsmax .libs 或包含中...所以 100% 确定它们在我的代码范围之外....但它们是 在那里。
我是 c++ 的新手,如果这是一个愚蠢的问题,我深表歉意。
纯虚拟意味着它们没有针对 class 实现。 class 确实无法实例化,无论是对于您的代码还是 3dsmax 代码。
情况是 3dsmax 有 subclasses 确实提供了这些虚拟方法的实现。然后,它们通过指向抽象基 class 的指针为您提供对 subclasses 的那些实例的访问。但是您没有得到指向基 class 本身的实例的指针。
如果 3dsmax API 提供任何可以实例化的具体基础 classes,那么您应该实例化它们。如果没有,那么您将不得不按预期使用 API 来获取指向您想要的实例的指针。这是一件好事。您应该遵循 API.
不,您不能实例化抽象 class 的子 class,因为您没有可用的 class 定义(即头文件)。