【问题标题】:use of object class instances and (void*) [closed]使用对象类实例和 (void*) [关闭]
【发布时间】:2012-03-05 10:22:45
【问题描述】:

有人可以指出对象类的用法吗?我的意思是使用对象类的实例是否为所有子类分配了所有内存?即 int float 等等等

我想知道一些我们必须需要 Object 的情况和一些我们需要 void 指针的情况,谢谢

【问题讨论】:

  • 我不是 100% 清楚你在问什么,但我认为你可能会对 stackoverflow.com/q/7298872/168175 感兴趣。
  • 很难说这里要问什么。这个问题是模棱两可、含糊不清、不完整、过于宽泛或修辞的,无法以目前的形式得到合理的回答。
  • @Armen 如果我先看到这个,“接受挑战”
  • 来自对象类我的意思是作为每个类的基类的类
  • 到底是谁关闭了这个?在我已经回答之后?!

标签: c++ pointers void-pointers


【解决方案1】:

void* 是指向内存中未设置为任何特定类型的空间的指针,或者更多,该指针可以指向任何“类型”的内存,但它指向的内存仍然是和 @ 987654322@ 或myObject

虽然这样做会很“奇怪”,但您可能有一个功能,例如

void zeroMem(void* memBlock, int size){}

此函数可用于将内存块的所有位清零。

我知道 openGL 也有使用 void* 的函数,通常用于缓冲区,这意味着您可以创建一个缓冲区,例如 char*int*,openGL 可以使用它,只要您告诉它这个缓冲区有多少字节。

当然,这两个例子都是 C 而不是 C++,尤其是 openGL 参考。

至于你的意思,“对象类实例”我不知道。也许你的意思是一个类的实例,你会调用它并反对它?在这种情况下,听起来您需要学习 OOP 的基础知识

编辑

'对象类实例'

好的,所以你的意思是基类。

如果你看 Java,所有的对象都是从一个类 Object 派生的(不是使用大写字母),这个基类是隐式继承的(即你不必做任何事情),即使是从某些东西继承的类否则,从而打破了 C# 不支持多重继承的观念。

现在,问题是关于 C++ 的,所以我简单地说,你(或多或少)永远不想为你的所有对象拥有一个基类 Object 类,没有必要。话虽如此,您可能有一个基类,您的许多类都派生自该基类。

这是 OOP 背后的一个基本概念,所以如果你需要这个解释,你真的应该坐下来读一本好书。

【讨论】:

  • 来自对象类我的意思是作为每个类的基类的类
  • @sparkling_spark 没有一个类是每个类的基类
  • 是的,在那之后@thecoshman 编辑了答案,我明白了
猜你喜欢
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 2012-06-07
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多