33,311
社区成员
发帖
与我相关
我的任务
分享
namespace Ex9_16 {
//定义一个接口类
public interface class IContainer
{
virtual double Volume();
virtual void ShowVolume();
};
//定一个Box类
public ref class Box : IContainer
{
public:
virtual void ShowVolume()
{
Console::WriteLine(L"Box usable volume is {0}", Volume());
}
virtual double Volume()
{
return m_Length * m_Width * m_Height;
}
Box():m_Length(1.0), m_Width(1.0), m_Height(1.0){}
Box(double lv, double wv, double hv):m_Length(lv), m_Width(wv), m_Height(hv)
{
}
public protected: //这意味着派生类继承的这些字段将变为protected,但是父程序集内部的类来说,它们都是public字段,我们实际上没有从父程序集内部的其他类中引用这些字段,因此本例中将Box类中的字段指定为protected也是可以的
double m_Length;
double m_Width;
double m_Height;
};
public ref class Stack
{
private:
ref struct Item
{
Object^ obj;
Item^ Next;
Item(Object^ ob, Item^ item):obj(ob), Next(item){};
};
Item^ Top;
public:
void Push(Object^ obj)
{
Top = gcnew Item(obj, Top);
}
Object^ Pop()
{
if(Top == nullptr)
return nullptr;
Object^ obj = Top->obj;
Top = Top->Next;
return obj;
}
};
public ref class Class1
{
// TODO: 在此处添加此类的方法。
};
}