gpt4 book ai didi

c++ - 将 const 放在函数声明之后是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 23:50:50 26 4
gpt4 key购买 nike

我可以毫无问题地运行以下代码。我注意到 main 中的 a.bytes 和 bytes 都更改为“B”。那么“const”在A的get()函数中做了什么?如下所示更改从 A 获取的字节的用法是否会出现问题?

注意:我不关心 A 的值是否会改变。我只想知道我是否会遇到不可预测的问题,尤其是当我在其解构函数中释放 A 时,无论我对 main 中的字节采取任何疯狂的操作。

class A{
public:
A(){
bytes = (char *)malloc(12);
bytes[0] = 'A';
bytes[1] = 0;
}
~A(){
free(bytes);
}
char * get() const{
return bytes;
}
char * bytes;
};

int _tmain(int argc, _TCHAR* argv[])
{
A a;
char * bytes = a.get();
bytes[0] = 'B';

return 0;
}

最佳答案

它只是意味着成员 函数不会(也不能)修改对象内的任何内部数据。

它还导致成员函数中的 this 变量为 const

关于c++ - 将 const 放在函数声明之后是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26380806/

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