void PossessedBy(AController* NewController)
时间: 2023-12-18 08:05:45 浏览: 12
这是一个函数声明,通常出现在C++代码中。
该函数是一个虚函数,用于将该对象的控制器更改为新的控制器。参数 NewController 是一个指向新控制器对象的指针。
在UE4中,所有被控制的Actor都由一个控制器控制。该函数用于将该Actor的控制器更改为新的控制器,以便新的控制器可以控制该Actor。
相关问题
C++ void*转char*
在C++中,void*是一种通用的指针类型,可以指向任意类型的数据。而char*是指向字符类型的指针。要将void*指针转换为char*指针,可以使用类型转换操作符进行强制类型转换。
下面是将void*指针转换为char*指针的示例代码:
```cpp
void* voidPtr = ...; // 假设voidPtr是一个void*指针
char* charPtr = static_cast<char*>(voidPtr); // 将void*指针转换为char*指针
```
需要注意的是,这种转换是一种类型不安全的操作,因为void*指针丢失了原始数据的类型信息。因此,在进行转换之前,需要确保原始数据的类型是char*或者可以安全地转换为char*类型。
什么情况下用void *和void **
引用[1]: void*是一种特殊的指针类型,可以指向任何类型的地址,但是带类型的指针不能指向void*的地址。它的好处是在编程时可以实现泛型编程,节约代码量。[1] 引用[2]: 当我们需要定义一个函数,但是函数的参数类型不确定或者需要支持多种类型的参数时,可以使用void*作为参数类型。例如,void* say_hello(void* args) { cout << "Hello World!" << endl; return 0; }[2] 引用[3]: 另外,当函数的返回值不关心具体类型,只关心大小时,也可以使用void*作为返回类型。例如,void* memcpy(void *dest, const void *src, size_t len);[3] 所以,当我们需要在函数传参时不确定类型或者要支持多类型的传参,或者函数的返回值不考虑类型只关心大小时,可以使用void*和void**。