构造器是类里一种特殊的方法
和普通方法的区别
—构造器的名字必须和所在类的名字一样
—系统会在创建某个类的实例是会在第一时间自动调用这个类
—构造器永远不会返回任何值
创建构造器,需要把它的声明先放到类里
构造对象数组
定义析构器
一个实例
#include<iostream>
#include<string>
#include<fstream>
class StoreQuote
{
public:
std::string quote, speaker;
std::ofstream fileOutput; //写入文件类
StoreQuote(); //构造器
~StoreQuote(); //析构器
void inputQuote();
void inputSpeaker();
bool write();
bool ifwrite();
};
StoreQuote::StoreQuote()
{
fileOutput.open("test.txt", std::ios::app);
}
StoreQuote::~StoreQuote()
{
fileOutput.close();
}
void StoreQuote::inputQuote()
{
std::getline(std::cin, quote);
}
void StoreQuote::inputSpeaker()
{
std::getline(std::cin, speaker);
}
bool StoreQuote::write()
{
if(fileOutput.is_open())
{
fileOutput<<quote<<"----"<<speaker<<'\n';
return true;
}
else
return false;
}
bool StoreQuote::ifwrite()
{
char i;
std::cout<<"是否写入名言?【Y/N】"<<"\n";
std::cin>>i;
std::cin.ignore(100,'\n');
if('Y'==i||'y'==i)
return true;
else
return false;
}
int main()
{
StoreQuote quote;
while(quote.ifwrite())
{
std::cout<<"请输入一句名言:\n";
quote.inputQuote();
std::cout<<"请输入作者:\n";
quote.inputSpeaker();
if( quote.write() )
{
std::cout<<"成功写入文件^_^"<<"\n";
}
else
std::cout<<"写入文件失败!!"<<'\n';
}
return 0;
}