gpt4 book ai didi

C++:使用具有特定(双...)指针参数的函数重载具有void *函数的函数

转载 作者:行者123 更新时间:2023-11-30 04:02:28 26 4
gpt4 key购买 nike

是否可以用空指针重载函数:

void setValue(void* value) { 
}

用一个带有特定指针的函数`?

void setValue(double* value) { 
}

如果我们传递一个 void* 值,这种重载函数的行为会怎样。

void* lvalue;
setValue(lvalue);

如果我们传递一个特定的指针:

double* lvalue;
setValue(lvalue);

这会像预期的那样工作吗?

最佳答案

Yes.

#include <iostream>

void f(double* ptr) { std::cout << "DOUBLE\n"; }
void f(void* ptr) { std::cout << "VOID\n"; }

int main()
{
void* v = nullptr;
double* d = nullptr;
f(v);
f(d);
// f(nullptr); // fails to compile
// f(NULL); // fails to compile
}

输出:

VOID
DOUBLE

现在,如果你想让 f(nullptr) 编译,添加 f(std::nullptr_t) 重载。

关于C++:使用具有特定(双...)指针参数的函数重载具有void *函数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25062043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com