Разделы презентаций


Статические члены класса

Статические члены классаПринадлежат классу, а не объектусуществуют в единственном экземпляре для всех объектов класса (являются общими)используются всеми объектами классаСоздаются до начала выполнения функции main и разрушаются после выхода из mainДва способа

Слайды и текст этой презентации

Слайд 1Тема: Статические члены класса

Статические свойства
Статические методы

Тема: Статические члены классаСтатические свойстваСтатические методы

Слайд 2Статические члены класса
Принадлежат классу, а не объекту
существуют в единственном экземпляре

для всех объектов класса (являются общими)
используются всеми объектами класса
Создаются до

начала выполнения функции main и разрушаются после выхода из main
Два способа вызова
через любой объект класса:
any_object.static_member
через имя класса
class_name::static_member
Статические члены классаПринадлежат классу, а не объектусуществуют в единственном экземпляре для всех объектов класса (являются общими)используются всеми

Слайд 3Статические данные в классе String
const int max_string_length = 128;
class String

{
public:
String() ;
String( const char* ) ;
String( const String& ) ;
~String()

;
String& operator= ( const String& );
int length( ) const ;
int read( ); // чтение из stdin
void print( ) const; // вывод в stdout
char& operator[ ] ( int );
const char& operator[ ] ( int ) const;
String substring (int start, int len) const;
friend String operator+ (const String&, const String& );
private:
char text [ max_string_length+1 ];
static int concat_calls;
};
Статические данные в классе Stringconst int max_string_length = 128;class String {	public:		String() ;		String( const char* ) ;		String( const

Слайд 4Файл mystring.cpp

#include “mystring.h”
#include
#include
#include
int String::concat_calls = 0

;
String String::operator+( const String& s1, const String& s2 ) {
String

both ;
if( s1.length() + s2.length() > max_string_length ) {
fprintf(stderr ,“String too long: %s + %s”, s1.text, s2.text) ;
exit(1) ;
}
String::concat_calls++ ;
strcpy( both.text , s1.text ) ;
strcat( both.text , s2.text ) ;
return both ;
}
Файл mystring.cpp #include “mystring.h”#include #include #include int String::concat_calls = 0 ;String String::operator+( const String& s1, const String&

Слайд 5Статические методы класса
Принадлежат классу, а не объекту
существуют в единственном экземпляре

для всех объектов класса (являются общими)
используются всеми объектами класса
не могут

использовать нестатические свойства вызывающего объекта
не могут использовать указатель this
Могут использовать статические свойства класса, имеют доступ к нестатическим свойствам объектов, являющихся аргументами или локальными объектами
Два способа вызова
через любой объект класса:
any_object.static_method()
через имя класса
class_name::static_method()
Статические методы классаПринадлежат классу, а не объектусуществуют в единственном экземпляре для всех объектов класса (являются общими)используются всеми

Слайд 6Статические методы в классе String
const int max_string_length = 128;
class String

{
public:
String() ;
String( const char* ) ;
String( const String& ) ;
~String()

;
String& operator= ( const String& );
int length( ) const ;
int read( ); // чтение из stdin
void print( ) const; // вывод в stdout
char& operator[ ] ( int );
const char& operator[ ] ( int ) const;
String substring (int start, int len) const;
static int n_concatenations();
friend String operator+ (const String&, const String& );
private:
char text [ max_string_length+1 ];
static int concat_calls;
};
Статические методы в классе Stringconst int max_string_length = 128;class String {	public:		String() ;		String( const char* ) ;		String( const

Слайд 7Файл mystring.cpp

#include “mystring.h”
int String::n_concatenations() {
return concat_calls ;
}

Файл mystring.cpp #include “mystring.h”int String::n_concatenations() {		return concat_calls ;}

Слайд 8Пример использования

#include “mystring.h”
#include
void main( int, char*[ ] ) {
String

firstname = “Bilbo” ,
lastname = “Baggins” ,

name ;
name = firstname + “ ”+ lastname ;
(“Name is: ” + name).print() ;
printf(“There are %d concatenations.\n”, String::n_concatenations() ) ;
}
Пример использования#include “mystring.h”#include void main( int, char*[ ] ) {	String firstname = “Bilbo” ,		  lastname =

Слайд 9Сферы приложения
Статистическая информация о классе (например, количество объектов класса, количество

вызовов какого-либо метода и т.п.)
Методы диагностики (например, сообщения об ошибках)

Сферы приложенияСтатистическая информация о классе (например, количество объектов класса, количество вызовов какого-либо метода и т.п.)Методы диагностики (например,

Слайд 10Статические методы в классе String
const int max_string_length = 128;
class String

{
public:
String() ;
String( const char* ) ;
String( const String& ) ;
~String()

;
String& operator= ( const String& );
int length( ) const ;
int read( ); // чтение из stdin
void print( ) const; // вывод в stdout
char& operator[ ] ( int );
const char& operator[ ] ( int ) const;
String substring (int start, int len) const;
friend String operator+ (const String&, const String& );
private:
char text [ max_string_length+1 ];
static void error_msg( const String& ) ;
};
Статические методы в классе Stringconst int max_string_length = 128;class String {	public:		String() ;		String( const char* ) ;		String( const

Слайд 11Файл mystring.cpp

#include “mystring.h”
#include
#include
#include
void String::error_msg( const String&

s = “Error in String” ) {
fprintf(stderr , s )

; exit(1) ;
}
String String::operator+( const String& s1, const String& s2 ) {
String both ;
if( s1.length() + s2.length() > max_string_length )
error_msg( “String too long: ” + s1 + s2 ) ;
strcpy( both.text , s1.text ) ;
strcat( both.text , s2.text ) ;
return both ;
}
// ………..
Файл mystring.cpp #include “mystring.h”#include #include #include void String::error_msg( const String& s = “Error in String” ) {		fprintf(stderr

Слайд 12РЕЗЮМЕ
И свойства, и методы могут быть статическими членами класса
Статические члены

принадлежат классу, а не объекту
Подчиняются правилам видимости (могут быть публичными

или приватными)
РЕЗЮМЕИ свойства, и методы могут быть статическими членами классаСтатические члены принадлежат классу, а не объектуПодчиняются правилам видимости

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика