import Foundation
// Class and Structure are basically the same but Class is more powerful
// Class have below features that Structure don't have
// 1 Inheritance
// 2 Type casting
// 3 Deinitializer
// 4 Reference counting
// Structures and Enum are actually Value types
struct Square {
var width: Int
var height: Int
}
var one = Square(width:18,height:30)
var two = one
print(two.height)
two.height = 88
print(two.height)
print(one.height)
var three = Square(width: 11, height: 1)//you have to put property value
// class is reference type
class ClassSquare { // for class you have to put default value, why
var width = 0
var height = 0
}
var alpha = ClassSquare()
var beta = alpha
print(alpha.height)
beta.height = 10
print(alpha.height)
print(alpha === beta) // this returns wether they are same object
// === means compare reference,only for class, == means compare value
var oneA = Int(3)
var oneB = Int(3)
// print(oneA === oneB)
//var oneC : NSNumber = NSNumber(oneA) // why can't
var oneC : NSNumber = 3
var oneD : NSNumber = 3
print(oneC === oneD) // why equal?