.


:




:

































 

 

 

 


- Win32




. . ++ :

While (GetMessage()) {

TranslateMessage();

DispatchMessage(); // ,

}

GetMessage , , , , . DispatchMessage , .

, , . , (RIT, Raw Input Thread).

: , , . , , . Windows. , RIT, . , . , , . , ( OnMouseClick). : , GetMessage true. WM_CLOSE , .

 

12. - : , , , , , , , . - .

, , , . : 1) , ; 2) - ; 3) . .

. 4 : , , . , ( , ): , .

, , , .

, , , , :

, .

.

, .

, ; , .

, , . , , , .

, . : ( is-a) ( part of). .

is-a . ( ), . , . : , , .

part of . . : , : , , .

, . , .

, . , , . , . (, Smalltalk) . , , .

, . , . , . , , ( ) ( ). . , OO, , , .

() , , () , .

, , () . , , , . : (). . , , . , , , , , .

 

13. . : , , . : . C++. , .

. : . , ( ), . , . Simula .

, ; . .

. , , , , , . , , . , , .

: , . , - ; . , . , . , , . , , ( , ) .

: ( ) ( ) . , -, . (, ). , . , .

: ; . , .

: , .

: . () ( ). , . , , , . , , , . :

(public) . (protected) , . (private) . .

: , (). ( : , ) ( : ).

++. ANSI/ISO ++ class. .

class _ { // public: // } _; class myClass { int a; public: void set_a(int num); int get_a();};

_ .

, : . , . , . . , (.. ).

 

14. C++. () ( ). .

++ . , . / . :

void main {

MyClass Object; // MyClass

SomeFunction(Object); // SomeFunction

// MyClass

Return 0;}

( ), ( MyClass), Object ( Main). , SomeFunction ( return).

: auto . , . : 1) auto int a; 2) int a;

new:

myClass *pObject = new MyClass;

someFunction(*pObject);

delete pObject;

new myClass. pObject. . Delete pObject . someFunction(myClass *c), , , .. new . .

new delete. , , . , . delete , . , (-, ) . , , NULL. : , .

, ( ) : ( ), . . const. , .

 

15. (-) C++. : (static) , (immutable) C++.

, , - (memberfunction). .

- , - . - . , .

- (static), . . - this. - . - const () volatile ().

(virtual function) . virtual . , , , . , " , ", . . , .

, -. , . , , .

( const). , . , -. , - , . :

class X {

int some_var; public:

int f1 () const; // - };

const , . , , -, , . ( mutable). -.

 


16. C++. - . . .

/ . . .., . . , . ().

: . , . , . .

, . . , .

(, ) , / . , . .

, . .

- . . ~ (), . : ++.

() .

C++ . ( return). , , . .

-. . ( ) . - , , .

. . virtual , , . virtual , .

 

17. . . . C++. .

, , , , , . , . - , , . , , , , . , , , . .., , .

, . , , .. "" . ( ).

, , .

.., , . , .

C++ , , , . , , . , , .

: (*.c) (*.h). .

, , . . , . , extern.

, , . . .

// complex.h - .

// ,

// .

typedef struct {

double Re, Im;

} complex;

extern void OutComplex(complex);

#include . .

 

 

18. () . . . . C++. . new .

. , . SmallTalk, JavaScript VBScript, - C++ Object Pascal. () -, . , .. . .., , (/ , , , .. ). .. , , . C++ , .

(+ ): 1). .. , , , , . 2). . , . 3). , . 4). , .

( ): 1). , , . 2). . 3). ;

(+ ): .

( ): .

 

19. () C++. const_cast, reinterpret_cast, static_cast, dynamic_cast.

. :

() //

() // ++

const_cast() const ( volatile). . , - const, . , const_cast , const . - const :

Void f() const // - myClass

{ Somevalue++; //

Const_cast<myClass*>(this)->SomeValue++; // !!}

myClass , const f().

reinterpret_cast() , . : reinterpret_cast<Type>(Object);

Type , , , . Object Type, , . ( ). :

int func(void* p)

{ Return reinterpret_cast<int>(p) }

int main()

{ int value=8;

int j=Func(reinterpret_cast<void*>(value));// 8

int j=Func(reinterpret_cast<void*>(&value)); // (-, 1234567)

}

dynamic_cast() , ( ) . , (.. ).

: dynamic_cast <Type> (Object)

Type , . Object . Type . Object . dynamic_cast Object . bad_cast, , . dynamic_cast . , . (upcast). (downcast).

dynamic_cast(), static_cast() (.. , ).

dynamic_cast(). Type, Object . C++ , , (, float double).

 

20. C++. .

, , . ++ , .

++, , . . ( , ). const (. void f(char * c) void f(const char * c) ). ( ), .

, , . -. , , . - :

:: operator ( )

{ }

. . . :

.

.

: .::?

.

:

, , - . .., , , , . ( + MyClass):

MyClass MyClass::operator + (MyClass * Src)

, .

 

21. . (template) C++ .

++ template. , - . , , , . -, , .

, .

, .. , .

. , , , , , .

: template <class >

, , , . , .

(, ) , .

template <class T> < > < > ( )

class T , . :

Template <class T> void sort (T a[], int n) {}

// sort - , ,

// -, sort <int> (a, 10); //

// sort <student>(a, 10); // 10

:

- (), , , .

- , . , , , .

- template, , (< >); class. class, : , . , .

- . , , . .

- , template <class T>, , , , .

- - template <class T>, , , .

 

 

22. C++.

, . .

:

template <class T> void sort (T a[], int n) {}

, :

void sort (student a[], int n) {}

sort:

1) sort <int> (a[], 10); // , ,

2) sort <student> (a[], 10); // , , .

.

- , . template, , . , .. , .

, . . . , , . , . :

:

1: template <class A, class B> class SomeClass {};

: SomeClass <int, char> a;

2: template < > class SomeClass <int, char> {};

3: template <class A> class SomeClass <A, char> {};

:

SomeClass <int, char> a; // 2

SomeClass <char, char> b; // 3

SomeClass <float, short> c; // 1

.. , .

 

23. C++. . .

, ( ). - - , - - . . . . ( ).

; . , , . . - . / . . . : .

. , , , . . , . .., . , virtual . , - . ( ). , , , , . , . .. , , , . , , , , , .

:

, -. .. -, . -.

:

Person.GetName(), - Student.GetID() Prepod.GetAddress().

Person *p = new Student;

p -> GetName(); // OK

p -> GetID(); // Error

dynamic_cast static_cast. , .. :

static_cast<student> (p) -> GetID(); // OK

(student *) (p) -> GetID(); // OK

24. . C++. .

. , , . , , . 0. :

Class CShape

{ public:

virtual void View(void) = 0; //

}

Class CTriangle: public CShape

{ public:

void View(void); //

}

, . , , .

( ++) , , . .. . , . :

Class Iperson { virtual void Get_fname(void) = 0 }; //

Class Istudent { virtual void Get_ID(void) = 0 }; //

Class <Name class>: public person, public student //

{ void Get_fname(void);

void Get_ID(void);}

, . , , . . , . , / .

 

 





:


: 2016-10-27; !; : 600 |


:

:

, , .
==> ...

1786 - | 1467 -


© 2015-2024 lektsii.org - -

: 0.156 .