**トピック4:**変数タイプのタイプ
説明
int型のデータメンバーとdouble型のデータメンバーを少なくとも1つ含むDataクラスを定義し、そのコンストラクタとデストラクタを定義して、プログラムの実行時にサンプルに示す結果を生成できるようにします。
入力
2行を入力します。最初の行はint型のデータで、2番目の行はdouble型のデータです。
出力
例を参照してください。
サンプル入力
120
3.14
サンプル出力
A default object is created.
An integer object 120 is created.
A double object 3.14 is created.
The double object 3.14 is erased.
The integer object 120 is erased.
The default object is erased.
タイトルの主な機能を考えると:
int main()
{
Data d1;
int i;
cin>>i;
Data d2(i);
double d;
cin>>d;
Data d3(d);
return 0;
}
コード:
#include<iostream>
#include<string>
#include<string.h>
using namespace std;
class Data{
int Int;
double Dou;
string type;
public:
Data(){
Int=0;
Dou=0.0;
type="default";
cout<<"A default object is created."<<endl;
}
Data(int i){
Int=i;
Dou=0;
type="integer";
cout<<"An integer object "<<Int<<" is created."<<endl;
}
Data(double d){
Dou=d;
Int=0;
type="double";
cout<<"A double object "<<Dou<<" is created."<<endl;
}
~Data(){
if(strcmp(type.c_str(),"default")==0){
cout<<"The default object is erased."<<endl;
}else if(strcmp(type.c_str(),"integer")==0){
cout<<"The integer object "<<Int<<" is erased."<<endl;
}else{
cout<<"The double object "<<Dou<<" is erased."<<endl;
}
}//此处使用c_str()和data()都是可以的!
};
int main()
{
Data d1;
int i;
cin>>i;
Data d2(i);
double d;
cin>>d;
Data d3(d);
return 0;
}
文字列の関数:
1).data():文字列を返しますが、「\ 0」で終わりません;
2).c_str():文字列を返し、「\ 0」で終わります。