C++ &引用;使用适当的位掩码进行强制转换”;在使用替代cout时

C++ &引用;使用适当的位掩码进行强制转换”;在使用替代cout时,c++,C++,因此,我决定创建一个控制台类,作为程序包含未定义行为的std::cout的替代 console.log(“字符串”+n)(其中n是一个整数类型)解释如下: const char* tmp_ptr1 = "String "; const char* tmp_ptr2 = tmp_ptr1 + n; console.log(std::string(tmp_ptr2)); 如果n>7或n7或n

因此,我决定创建一个控制台类,作为程序包含未定义行为的
std::cout的替代

console.log(“字符串”+n)
(其中
n
是一个整数类型)解释如下:

const char* tmp_ptr1 = "String ";
const char* tmp_ptr2 = tmp_ptr1 + n;
console.log(std::string(tmp_ptr2));

如果
n>7
n<0
以上代码执行越界访问。在您的情况下,此访问碰巧从链接到程序数据部分的字符串文本中拾取一些其他(子)字符串,您可以在屏幕上看到它。理论上,任何其他情况都可能发生。

您的程序包含未定义的行为

console.log(“字符串”+n)
(其中
n
是一个整数类型)解释如下:

const char* tmp_ptr1 = "String ";
const char* tmp_ptr2 = tmp_ptr1 + n;
console.log(std::string(tmp_ptr2));

如果
n>7
n<0
以上代码执行越界访问。在您的情况下,此访问碰巧从链接到程序数据部分的字符串文本中拾取一些其他(子)字符串,您可以在屏幕上看到它。理论上,其他任何事情都可能发生。

我现在无法测试它,但是console.log(std::string(“string”)+n)会起作用吗?@quartlyquotaofquetes否,
运算符+
不会重载
std::string
和整数类型。我现在无法测试它,但会使用console.log(std::string(“string”)+n)做这个把戏吗?@QuarterlyQuotaOfQuotes否,
运算符+
对于
std::string
和整数类型没有重载。