#include <iostream>
#include <string>
using namespace std;
class Fish
{
public:
void Swim()
{
if (m_bFreshWaterFish)
{
cout<<"swims in lake"<<endl;
}
else
{
cout<<"swims in sea"<<endl;
}
}
protected:
bool m_bFreshWaterFish;
};
class Tuna : public Fish
{
public:
Tuna()
{
m_bFreshWaterFish = false;
}
};
class Carp : public Fish
{
public:
Carp()
{
m_bFreshWaterFish = true;
}
};
int main()
{
Tuna tuna;
Carp carp;
tuna.Swim();
carp.Swim();
system("pause");
return 0;
}
#include <iostream>
#include <string>
using namespace std;
class Fish
{
public:
Fish(bool isFreshWater)
:m_bFreshWaterFish(isFreshWater)
{
}
void Swim()
{
if (m_bFreshWaterFish)
{
cout<<"Swims in lake"<<endl;
}
else
{
cout<<"Swims in sea"<<endl;
}
}
protected:
bool m_bFreshWaterFish;
};
class Tuna : public Fish
{
public:
Tuna(bool isFreshWater)
:Fish(isFreshWater)
{
}
};
class Carp : public Fish
{
public:
Carp(bool isFreshWater)
:Fish(isFreshWater)
{
}
};
int main()
{
Tuna tuna(false);
Carp carp(true);
tuna.Swim();
carp.Swim();
system("pause");
return 0;
}
#include <iostream>
#include <string>
using namespace std;
class FishDummyMember
{
public:
FishDummyMember()
{
cout<<"call FishDummyMember() "<<endl;
}
~FishDummyMember()
{
cout<<"call ~FishDummyMember() "<<endl;
}
};
class Fish
{
public:
Fish()
{
cout<<"call Fish() "<<endl;
}
~Fish()
{
cout<<"call ~Fish() "<<endl;
}
protected:
FishDummyMember dummy;
};
class TunaDummyMember
{
public:
TunaDummyMember()
{
cout<<"call TunaDummyMember() "<<endl;
}
~TunaDummyMember()
{
cout<<"call ~TunaDummyMember() "<<endl;
}
};
class Tuna : public Fish
{
public:
Tuna()
{
cout<<"call Tuna() "<<endl;
}
~Tuna()
{
cout<<"call ~Tuna() "<<endl;
}
private:
TunaDummyMember dummy;
};
//基类,派生类及其成员的构造和析构顺序测试
int main()
{
Tuna tuna;
//system("pause");
return 0;
}
#include <iostream>
#include <string>
using namespace std;
class Base
{
public:
void func()
{
cout<<"call Base.func()"<<endl;
}
};
class Sub : private Base
{
public:
void callFunc()
{
func();
}
};
//类的私有继承测试,只有派生类可以调用基类的方法,派生类的对象不能调
int main()
{
Sub sub;
sub.callFunc();
//error C2247: “Base::func”不可访问,因为“Sub”使用“private”从“Base”继承
sub.func();
system("pause");
return 0;
}