gpt4 book ai didi

c++ - 如何防止从 char 到 int 的隐式转换?

转载 作者:行者123 更新时间:2023-11-30 00:52:03 24 4
gpt4 key购买 nike

我有以下代码:

#include <iostream>

template<typename T> class DynArray
{
T *contents;
int size;
public:
explicit DynArray(int initial_size);
};

int main()
{

DynArray<std::string> b('7');

return 0;
}

我的问题是:如何防止编译从 char 到 int 的隐式转换? (即这一行:`DynArray b('7');

最佳答案

你不能直接,但你可以重载传递一个字符时首先选择的构造函数...

explicit DynArray(char);

将其设为私有(private),不要定义它,只需声明它即可。与声明但不定义复制构造函数/复制赋值运算符以防止类可复制相同。

或者,使用 C++11,将其删除(这是执行上述操作的新的更清洁/更清晰/更好的方法)...

explicit DynArray(char) = delete;

关于c++ - 如何防止从 char 到 int 的隐式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20010960/

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