Announcement

Collapse

Forum Guidelines

This forum is for finished source code that is working properly. If you have questions about this or any other source code, please post it in one of the Discussion Forums, not here.
See more
See less

Another Real Simple Box Class Example

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Another Real Simple Box Class Example

    Code:
    'Console Compiler 5.0 Example
    #Compile Exe 'CBox.bas  An adaptation of Ivor Horton's examples from his "Beginning Visual C++ 6".
    #Dim All     'Shows Override of Volume() Method in inherited CBox Class.
    
    Class CBox
      Instance m_dblLength, m_dblWidth, m_dblHeight As Double
      
      Interface ICBox : Inherit IUnknown                'Can use Property Get/Set
        Property Get Length() As Double                 'Methods to initialize
          Property=m_dblLength                          'length, width, and
        End Property                                    'height dimensions.
    
        Property Set Length(Byval dblLength As Double)
          m_dblLength=dblLength
        End Property
        
        Property Get Width() As Double
          Property=m_dblWidth
        End Property
    
        Property Set Width(Byval dblWidth As Double)
          m_dblWidth=dblWidth
        End Property
        
        Property Get Height() As Double
          Property=m_dblHeight
        End Property
    
        Property Set Height(Byval dblHeight As Double)
          m_dblHeight=dblHeight
        End Property
        
        Method MakeBox(dblLength As Double, dblWidth As Double, dblHeight As Double)
          m_dblLength=dblLength                           'One can also create a
          m_dblWidth=dblWidth                             'Method to set all the
          m_dblHeight=dblHeight                           'sides all at once.
        End Method
        
        Method Volume() As Double                         'This member function
          Method=m_dblLength * m_dblWidth * m_dblHeight   'will return the  gross
        End Method                                        'volume of a box.
      End Interface
    End Class
    
    
    Class GlassBox                               'Lets say you are in the packaging business
      Interface IGlassBox : Inherit CBox, ICBox  'and need to package fragile glasses where
        Override Method Volume() As Double       '20% of the box will be taken up with soft
          Method=MyBase.Volume() * 0.80          'filler packaging material to cushion the
        End Method                               'glasses.  You can utilize all the existing
      End Interface                              'functionality of the CBox class and just
    End Class                                    'override the Volume() Method to reduce the
                                                 'effective volume by 20%.
    
    Function PBMain() As Long
      Local box1 As ICBox
      Local box2 As IGlassBox
      
      Print "box1: a regular box":Print "============================="
      box1=Class "CBox"
      box1.Length=3.0
      box1.Width=4.0
      box1.Height=5.0
      Print "box1.Length="box1.Length()
      Print "box1.Width="box1.Width()
      Print "box1.Height="box1.Height()
      Print "box1.Volume="box1.Volume()
      Print
      Print "box2: a box for glasses":Print "============================="
      box2=Class"GlassBox"
      box2.MakeBox(3.0,4.0,5.0)
      Print "box1.Length="box1.Length()
      Print "box1.Width="box1.Width()
      Print "box1.Height="box1.Height()
      Print "box2.Volume="box2.Volume()
      Waitkey$
    
      PBMain=0
    End Function
    Fred
    "fharris"+Chr$(64)+"evenlink"+Chr$(46)+"com"
Working...
X
😀
🥰
🤢
😎
😡
👍
👎