【c++】 类的构造器和析构器

构造器的名字必须和它所在的类的名字一样;
析构器就是构造器前面加‘~’
构造器永远不会返回任何值
系统在创建某个类的实例时会第一时间自动调用这个类的构造器
故在下列代码中可以省去在main函数里写文件写入的相关代码

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

class Storestory
{
public:
	string story,writer;
	
	Storestory();//构造器 
	~Storestory();//析构器 
	
	ofstream writefile;//写入文件定义 
	void writestory();//写故事 
	void writewriter();	//写作者 
	bool write();//判断文件是否打开 
};

Storestory::Storestory()
{
	writefile.open("E:\\user.txt",ios::app);
	//构造器里用追加形式打开文件 
} 

Storestory::~Storestory()
{
	writefile.close();
	//析构器关闭文件 
} 

void Storestory::writestory()
{
	cin.ignore(100,'\n');//吃掉回车避免麻烦 
	getline(cin,story);
	cout<<"故事:"<<story<<endl;
}

void Storestory::writewriter()
{
	cin.ignore(100,'\n');
	getline(cin,writer);
	cout<<"作者:"<<writer<<endl;
}

bool Storestory::write()
{
	if(writefile.is_open()) return true;
	else return false;	
}
int main()
{
	Storestory ss;
	cout<<"我有故事,你有酒吗?"<<endl;
	ss.writestory();
	cout<<"这个故事是谁的呢?"<<endl;
	ss.writewriter();
	if(ss.write()) cout<<"这个故事将被记录于此"<<endl;
	else cout<<"文件打开失败,故事记录失败"<<endl; 
	return 0;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值