#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Person
{
public:
Person()
{
m_Age = 20;
m_Name = (char*)malloc(strlen("灵狐姐姐") + 1);
strcpy(m_Name, "灵狐姐姐");
}
void Init()
{
m_Age = 20;
m_Name = (char*)malloc(strlen("灵狐姐姐") + 1);
strcpy(m_Name, "灵狐姐姐");
}
void Clean()
{
if (m_Name != NULL)
{
free(m_Name);
}
}
public:
int m_Age;
char* m_Name;
};
int main()
{
//分配内存
Person* person = (Person*)malloc(sizeof(Person));
if (person == NULL)
{
return 0;
}
//调用初始化函数
person->Init();
//清理对象
person->Clean();
//释放person对象
free(person);
return EXIT_SUCCESS;
}
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Person
{
public:
Person()
{
cout << "无参构造函数!" << endl;
pName = (char*)malloc(strlen("undefined") + 1);
strcpy(pName, "undefined");
mAge = 0;
}
Person(char* name, int age)
{
cout << "有参构造函数!" << endl;
pName = (char*)malloc(strlen(name) + 1);
strcpy(pName, name);
mAge = age;
}
void ShowPerson()
{
cout << "Name:" << pName << " Age:" << mAge << endl;
}
~Person()
{
cout << "析构函数!" << endl;
if (pName != NULL) {
delete pName;
pName = NULL;
}
}
public:
char* pName;
int mAge;
};
void test01()
{
Person* person1 = new Person;
Person* person2 = new Person("John", 33);
person1->ShowPerson();
person2->ShowPerson();
delete person1;
delete person2;
}
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}
delete只能适用于由new创建的对象