Row references are created when dereferencing a c4_Cursor or when indexing an element of a c4_View. Assignment will change the corresponding item. Rows (objects of type c4_Row) are a special case of row references, consisting of a view with exactly one item.

Internally, row references are very similar to cursors, in fact they are little more than a wrapper around them. The essential difference is one of semantics: comparing row references compares contents, copying row references copies the contents, whereas cursor comparison and copying deals with the pointer to the row, not its contents.

<if !private>
c4_View Container () const;
  Return the underlying container view

  <if !private>

c4_Cursor _cursor;

  <if !private>

c4_RowRef (c4_Cursor);
  Constructor, not for general use

  <if !private>

c4_Cursor operator& () const;
  Return the cursor associated to this row

  <if !private>

c4_RowRef operator= (const c4_RowRef& row_);
  Assign the value of another row to this one

class c4_RowRef