ПК
https://en.cppreference.com/w/cpp/memory/c/free
Size: a a a
ПК
AS
s
#include <iostream>
class A
{
public:
A():val_(1234)
{
std::cout << "A constructor" << std::endl;
}
virtual ~A()
{
std::cout << "A destructor" << std::endl;
}
int get_val(void)const
{
return val_;
}
private:
int val_;
};
int main()
{
A* ptr;
ptr = new A();
std::cout << "A val_: " << ptr->get_val() << std::endl;
ptr->A::~A();
free(ptr);
ptr = (A*)(malloc(sizeof(A)));
ptr->A::A();
std::cout << "A val_: " << ptr->get_val() << std::endl;
delete ptr;
}
s
out:
A constructor
A val_: 1234
A destructor
A constructor
A val_: 1234
A destructor
s
🎄T
#include <iostream>
class A
{
public:
A():val_(1234)
{
std::cout << "A constructor" << std::endl;
}
virtual ~A()
{
std::cout << "A destructor" << std::endl;
}
int get_val(void)const
{
return val_;
}
private:
int val_;
};
int main()
{
A* ptr;
ptr = new A();
std::cout << "A val_: " << ptr->get_val() << std::endl;
ptr->A::~A();
free(ptr);
ptr = (A*)(malloc(sizeof(A)));
ptr->A::A();
std::cout << "A val_: " << ptr->get_val() << std::endl;
delete ptr;
}
AS
#include <iostream>
class A
{
public:
A():val_(1234)
{
std::cout << "A constructor" << std::endl;
}
virtual ~A()
{
std::cout << "A destructor" << std::endl;
}
int get_val(void)const
{
return val_;
}
private:
int val_;
};
int main()
{
A* ptr;
ptr = new A();
std::cout << "A val_: " << ptr->get_val() << std::endl;
ptr->A::~A();
free(ptr);
ptr = (A*)(malloc(sizeof(A)));
ptr->A::A();
std::cout << "A val_: " << ptr->get_val() << std::endl;
delete ptr;
}
AS
s
s
s
s
AS
s
AS
DB
JM
z
P
AB