---
title: free
framework: kernel
role: pseudoSymbol
path: kernel/osobject/1941146-free
---

# free

Deallocates/releases resources held by the object.

## Declaration

```occ
virtual void free(); 
```

## Overview

Overview Classes derived from OSObject should override this function to deallocate or release all dynamic resources held by the instance, then call the superclass's implementation. Caution: You can not assume that you have completed initialization before free is called, so be very careful in your implementation. OSObject's implementation performs the C++ delete of the instance, so be sure that you call the superclass implementation last in your implementation. free must not fail; all resources must be deallocated or released on completion.

## See Also

### Miscellaneous

- [getRetainCount](kernel/osobject/1941147-getretaincount.md)
- [init](kernel/osobject/1941148-init.md)
- [operator delete](kernel/osobject/1941149-operator_delete.md)
- [operator new](kernel/osobject/1941150-operator_new.md)
- [release()](kernel/osobject/1941151-release.md)
- [release(int)](kernel/osobject/1941153-release.md)
- [retain](kernel/osobject/1941154-retain.md)
- [serialize](kernel/osobject/1941155-serialize.md)
- [taggedRelease(const void *)](kernel/osobject/1941156-taggedrelease.md)
- [taggedRelease(const void *, const int)](kernel/osobject/1941157-taggedrelease.md)
- [taggedRetain](kernel/osobject/1941158-taggedretain.md)
