/*
构造函数:
特点:1.无返回值
2.通常情况下是pubilc属性
3.调用不需要自己调用,构建对象的时候调用
4.函数名和类名一样
分为:
1.默认构造函数
2.普通构造函数
3.拷贝构造函数
析构函数:
特点:1.无参
2.无返回值
3.函数名: ~类名() {}
4.对象死亡的时候被调用
*/
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
class girlFriend
{
pubilc:
girlFriend(string name,int age)
{
this->name = name;
this->age = age;
}
void print();
/*
也可以如此代替: 避免使用this指针
girlFriend(string name,int age) : name(name),age(age)
{
cout << "name:" << name << "age:" << age << endl;
}
*/
//函数重载
girlFriend();
//特殊的构造函数
//什么时候析构函数需要手动释放
//当数据成员申请内存的时候
~girlFriend()
{
cout << "自己写的析构函数" << endl; //int main中的大括号内的函数操作完后,就会调用析构函数
}
protected:
string name;
int age;
};
void girlFriend::print()
{
cout << "name:" << name << "age:" << age << endl;
}
class myString
{
public:
myString(char *str)
{
char *str = new char[strlen(str) + 1];
strcpy(this->str,str);
}
void print()
{
cout << str << endl;
}
protected:
char*str;
};
int main()
{
{
grilFriend yourGirl("小仙女",18); //一个对象
yourGril.print();
//括号代表一种初始化
girlFriend *ppGirl = new girlFriend("小可爱",17);//一个对象
//函数重载
girlFriend Array[3];//三个对象
delete ppGirl;//一个对象
} //大括号内的函数执行完后,执行六次(因为有六个对象)析构函数 ,new出来的对象必须手动释放,才能死亡
system("pause");
return 0;
}
构造函数和析构函数
最新推荐文章于 2025-03-16 23:15:19 发布