C Class - PowerPoint PPT Presentation

About This Presentation
Title:

C Class

Description:

Public: section of a class can be accessed by anyone ... Must be named identical to the name of the class prefixed with a tilde ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 41
Provided by: csNct
Category:
Tags: class | tilde

less

Transcript and Presenter's Notes

Title: C Class


1
Chapter 2
2
C Class
  • A class name
  • Data members
  • Member functions
  • Levels of program access
  • Public section of a class can be accessed by
    anyone
  • Private section of a class can only be accessed
    by member functions and friends of that class
  • Protected section of a class can only be
    accessed by member functions and friends of that
    class, and by member functions and friends of
    derived classes

3
Definition of the C class Rectangle
4
Program 2.2 Implementation of operations on
Rectangle
  • // In the source file Rectangle.C
  • include Rectangle.h
  • // The prefix Rectangle identifies
    GetHeight() and GetWidth() as member functions
    belong to class Rectangle. It is required because
    the member functions are implemented outside
    their class definition
  • int RectangleGetHeight() return h
  • int RectangleGetWidth() return w

5
Constructor and Destructor
  • Constructor is a member function which
    initializes data members of an object.
  • Adv all class objects are well-defined as soon
    as they are created.
  • Must have the same name of the class
  • Must not specify a return type or a return value
  • Destructor is a member fucntion which deletes
    data members immediately before the object
    disappears.
  • Must be named identical to the name of the class
    prefixed with a tilde .
  • It is invoked automatically when a class object
    goes out of scope or when a class object is
    deleted.

6
Constructors for Rectangle
  • Rectangle r(1, 3, 6, 6)
  • Rectangle s new Rectangle(0, 0, 3, 4)

Rectangle t
7
Operator Overloading
  • C can distinguish the operator when
    comparing two floating point numbers and two
    integers. But what if you want to compare two
    Rectangles?

8
Array
  • Is it necessary to define an array as an ADT?
  • C array requires the index set to be a set of
    consecutive integers starting at 0
  • C does not check an array index to ensure that
    it belongs to the range for which the array is
    defined.

9
ADT 2.1 GeneralArray
10
ADT 2.2 Polynomial
11
Polynomial Representations
  • Representation 1
  • private
  • int degree // degree MaxDegree
  • float coef MaxDegree 1
  • Representation 2
  • private
  • int degree
  • float coef
  • PolynomialPolynomial(int d)
  • degree d
  • coef new float degree1

12
Polynomial Representation 3
  • class Polynomial // forward delcaration
  • class term
  • friend Polynomial
  • private
  • float coef // coefficient
  • int exp // exponent
  • private
  • static term termArrayMaxTerms
  • static int free
  • int Start, Finish
  • term Polynomial termArrayMaxTerms
  • Int Polynomialfree 0 // location of next
    free location in temArray

13
Representation 3 for two Polynomials
  • Represent the following two polynomials
  • A(x) 2x1000 1
  • B(x) x4 10x3 3x2 1

14
Polynomial Addition
O(mn)
15
Adding a new Term
16
Disadvantages of Representing Polynomials by
Arrays
  • What should we do when free is going to exceed
    MaxTerms?
  • Either quit or reused the space of unused
    polynomials. But costly.
  • If use a single array of terms for each
    polynomial, it may alleviate the above issue but
    it penalizes the performance of the program due
    to the need of knowing the size of a polynomial
    beforehand.

17
Sparse Matrices
18
ADT 2.3 SparseMatrix
19
Sparse Matrix Representation
  • Use triple ltrow, column, valuegt
  • Store triples row by row
  • For all triples within a row, their column
    indices are in ascending order.
  • Must know the number of rows and columns and the
    number of nonzero elements

20
Sparse Matrix Representation (Cont.)
  • class SparseMatrix // forward declaration
  • class MatrixTerm
  • friend class SparseMatrix
  • private
  • int row, col, value
  • In class SparseMatrix
  • private
  • int Rows, Cols, Terms
  • MatrixTerm smArrayMaxTerms

21
Transposing A Matrix
  • Intuitive way
  • for (each row i)
  • take element (i, j, value) and store it in (j,
    i, value) of the transpose
  • More efficient way
  • for (all elements in column j)
  • place element (i, j, value) in position (j, i,
    value)

22
Transposing a Matrix
O(termscolumns)
23
Fast Matrix Transpose
  • The O(termscolumns) time gt O(rowscolumns2)
    when terms is the order of rowscolumns
  • A better transpose function
  • It first computes how many terms in each columns
    of matrix a before transposing to matrix b. Then
    it determines where is the starting point of each
    row for matrix b. Finally it moves each term from
    a to b.

24
O(columns)
O(terms)
O(columns-1)
O(terms)
O(row column)
25
Matrix Multiplication
  • Definition Given A and B, where A is mxn and B
    is nxp, the product matrix Result has dimension
    mxp. Its ij element is
  • for 0 i lt m and 0 j lt p.

26
(No Transcript)
27
Matrix Multiplication
28
(No Transcript)
29
(No Transcript)
30
(No Transcript)
31
Representation of Arrays
  • Multidimensional arrays are usually implemented
    by one dimensional array via either row major
    order or column major order.
  • Example One dimensional array

32
Two Dimensional Array Row Major Order
Col 0
Col 1
Col 2
Col u2 - 1
Row 0
X
X
X
X
X
X
X
X
Row 1
Row u1 - 1
X
X
X
X
u2 elements
u2 elements
Row u1 - 1
Row 0
Row 1
Row i
i u2 element
33
Generalizing Array Representation
  • The address indexing of Array Ai1i2,,in is
  • a i1 u2 u3 un
  • i2 u3 u4 un
  • i3 u4 u5 un
  • in-1 un
  • in
  • a

34
String
  • Usually string is represented as a character
    array.
  • General string operations include comparison,
    string concatenation, copy, insertion, string
    matching, printing, etc.

H
e
l
l
o
W
o
r
l
d
\0
35
(No Transcript)
36
(No Transcript)
37
String Matching The Knuth-Morris-Pratt Algorithm
  • Definition If p p0p1pn-1 is a pattern, then
    its failure function, f, is defined as
  • If a partial match is found such that si-j si-1
    p0p1pj-1 and si ? pj then matching may be
    resumed by comparing si and pf(j1)1 if j ? 0.
    If j 0, then we may continue by comparing si1
    and p0.

38
Fast Matching Example
  • Suppose exists a string s and a pattern pat
    abcabcacab, lets try to match pattern pat in
    string s.
  • j 0 1 2 3 4 5 6 7
    8 9
  • pat a b c a b c a c
    a b
  • f -1 -1 -1 0 1 2 3 -1
    0 1
  • s - a b c a ? ? . .
    . ?
  • pat a b c a b c a c
    a b
  • a b c a b c a c
    a b

j 4, pf(j-1)1 p1
New start matching point
39
(No Transcript)
40
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com