gpt4 book ai didi

C++,我怎么没有得到值 "123456"

转载 作者:太空宇宙 更新时间:2023-11-04 15:00:49 25 4
gpt4 key购买 nike

我试图打印出值 123456,但它给了我垃圾值。我该如何解决?你能解释一下为什么它给出了错误的值吗?

#include <stdio.h>
#include <stdlib.h>

struct MyInfo
{
private:
int private_key = 123456;
public:
int setkey(int value)
{
private_key = value;
}
int GetScore()
{
return private_key;
}
};

void main()
{
MyInfo* pMyInfo;
pMyInfo = (MyInfo*)malloc(sizeof(MyInfo));

printf("%d\n", pMyInfo->GetScore());

free(pMyInfo);
}

最佳答案

不要使用 malloc/free 而是使用 pMyInfo = new MyInfo()delete pMyInfo。只有 new 会调用初始化值的构造函数;只有 delete 会调用析构函数。

关于注释,意思是,你也可以把它放在堆栈上,即 MyInfo pMyInfo;,即不是指针。这将自动调用构造函数,当它超出范围时,将自动调用析构函数。

关于C++,我怎么没有得到值 "123456",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45160955/

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