使用对象类实例和(void*)
use of object class instances and (void*)
有人能指出对象类的使用吗?我的意思是,使用对象类的实例,它是否为所有子类分配了所有的内存?即int float等
我想知道一些我们必须需要Object的情况,以及一些我们需要void指针的情况,感谢
void*
是指向内存中未设置为任何特定类型的空间的指针,或者更确切地说,指针可以指向任何"类型"的内存,但它指向的内存仍然是int
或myObject
。
虽然这样做会很"奇怪",但你可能有这样的功能
void zeroMem(void* memBlock, int size){}
这个函数可以用来将内存块的所有位清零。
我知道openGL也有采用void*
的函数,通常用于缓冲区,这意味着你可以创建一个缓冲区,例如char*
或int*
,只要你告诉它这个缓冲区有多少字节,openGL就可以了。
当然,这两个例子都是C而不是C++,尤其是openGL引用。
至于你所说的"对象类实例"是什么意思,我不知道。也许你指的是一个类的实例,你会调用它并反对它?在这种情况下,听起来你需要学习OOP 的基本原理
编辑
"对象类实例"
好吧,你说的是基类。
如果你看看Java,所有的对象都是从一个类Object派生的(不是使用大写),这个基类是隐式继承的(即你不必做任何事情),即使是由从其他东西继承的类继承的,从而打破了C#不支持多重继承的概念。
现在,问题是关于C++的,所以我简单地说,你(或多或少)永远不想为所有对象都有一个基类Object类,没有必要。也就是说,你可能有一个基类,你的很多类都是从这个基类派生出来的。
这是OOP背后的一个基本概念,所以如果你需要解释,你真的应该坐下来读一本好书。
相关文章:
- 从C++实例化QML
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 如何在c++中为模板函数实例创建快捷方式
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 在c++类上调用void函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 设计一个只能由特定类实例化的类(如果可能的话,通过make_unique)
- 在派生函数中指定void*参数
- C++为什么尽管我调用了void函数,它却不起作用
- 如何从void函数输出字符串
- 我应该使用什么来代替void作为变体中的替代类型之一
- 奇怪的结构&GCC&clang(void*返回类型)
- 如何创建一个空的全局类并在启动时实例化它
- 无法创建抽象类的实例
- C++:我可以在 void 函数中实例化对象吗?
- 将新放置到缓冲区后,缓冲区和实例是否具有相同的 void* 地址?
- 如何检查 void* 是否指向对象类型的有效实例上的指针
- 使用对象类实例和(void*)