継承の基本(復習)
cSample.h
#pragma once
#include <iostream>
using std::string;
class cSample
{
protected:
string mName;
public:
string mNickName;
//インライン関数定義+メンバイニシャライザ
cSample(string _name):mName(_name) {}
cSample() :mName("dammy") {};
//セッター・ゲッターを作ってprivateメンバ
//を書き換える、参照するを実現
void setMyName(string _name) { mName = _name; }
string getMyName() { return mName; }
void printMyName();
void printMyNickName();
};
cSample.cpp
#include "cSample.h"
#include <iostream>
using std::cout;
using std::endl;
void cSample::printMyName()
{
cout << mName << endl;
}
void cSample::printMyNickName()
{
cout << mNickName << endl;
}
cInheritSample.h
#include "cSample.h"
#include <iostream>
using std::cout;
using std::endl;
void cSample::printMyName()
{
cout << mName << endl;
}
void cSample::printMyNickName()
{
cout << mNickName << endl;
}
cInheritSample.cpp
#include "cInheritSample.h"
#include <iostream>
using std::cout;
using std::endl;
cInheritSample::cInheritSample()
:cSample()
{
cout << "cSampleはデフォルトコンストラクタで初期化されました" << endl;
}
cInheritSample::cInheritSample(string _name)
:cSample(_name)
{
cout << "cSampleは" << _name
<< "初期化されました" << endl;
}
void cInheritSample::printProfile()
{
cout << "-+-+--+-+-"<< "Profile of " << mName
<< "-+-+--+-+-" << endl;
cout << " お名前:" << mName << endl;
cout << "ニックネーム:" << mNickName << endl;
cout << "-+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+-" << endl;
}
theMain.cpp
#include <iostream>
#include "cSample.h"
#include "cInheritSample.h"
int main()
{
//cSample ins2;
//cSample ins1("ysan");
//
//ins1.mNickName = "ytarou";
//ins1.setMyName("yamada tarou");
//ins1.printMyName();
//ins1.printMyNickName();
//
cInheritSample ins3("山田次郎");
//ins3.setMyName("山田次郎");
ins3.mNickName = "じろちゃん";
//ins3.printMyName();
//ins3.printMyNickName();
ins3.printProfile();
return 0;
}