gpt4 book ai didi

c++ - 为什么在删除指针类后仍然可以调用指针类中的函数?

转载 作者:行者123 更新时间:2023-11-30 00:37:31 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
What will happen when I call a member function on a NULL object pointer?

#include <iostream>
#include <string>

using namespace std;

class myClass{
private:
int *x, *y, *z;

public:
myClass();
~myClass();
void display();
void math(int,int,int);
};


void myClass::math(int x,int y,int z){
this->x = new int;
this->y = new int;
this->z = new int;

*this->x = x;
*this->y = y;
*this->z = z;

cout << "result: " << (x*y)+z << endl;
}

myClass::~myClass(){
delete x;
delete y;
delete z;
}

void myClass::display(){
cout << x << y << z << endl;
}

myClass::myClass(){
x=0;
y=0;
z=0;
}


int main()
{
myClass myclass;
myClass *myptr;
myptr = new myClass();

myclass.math(1,1,1);

myptr->math(1,1,1);

delete myptr;

myptr->math(1,1,1); **//why does this still print?**



int t;
cin >> t;

}

:::OUTPUT:::

result: 2

result: 2

result: 2

我只是在 C++ 中闲逛,试图了解更多信息。我想看看 delete 运算符到底做了什么。为什么我在删除对象后仍然得到第三个结果“result: 2”?

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