types and types of assignments for cpp