,   CyberForum.ru

"In file included from fig11_08.cpp" - C++

 
05
12 / 12 / 0
: 31.08.2011
: 458
14.07.2014, 06:31     "In file included from fig11_08.cpp" #1
fig11_08.cpp 8 . , , . , .
 : rar 11_8.rar (3.1 , 5 )
.
05
12 / 12 / 0
: 31.08.2011
: 458
14.07.2014, 07:22  []     "In file included from fig11_08.cpp" #2
. ? , , . , . .
uglyPinokkio
325 / 228 / 41
: 30.05.2014
: 682
14.07.2014, 08:08     "In file included from fig11_08.cpp" #3
05
. ?


37
,


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// . 11.6: Array.h 
//      . 
#ifndef ARRAY_H 
#define ARRAY_H 
 
#include <iostream> 
 
using std::ostream; 
using std::istream; 
 
class Array
{ 
   friend ostream& operator<<( ostream &, const Array & ); 
   friend istream& operator>>( istream &, Array & ); 
   public: 
   Array( int = 10 ); //    
   Array( const Array & ); //   
   ~Array(); //  
   int getSize() const; //   
   
   const Array &operator=( const Array & ); //   
   bool operator==( const Array & ) const; //   
   
   //  ;    == 
   bool operator!=( const Array right ) const 
   { 
     return ! ( *this == right ); //  Array::operator== 
   } //   operator!= 
   
   //      lvalue 
   int &operator[]( int ); 
   
   //      rvalue 
   int operator[]( int ) const; 
   private: 
   int size; //  ,   
   int *ptr; //      
}; //   Array 
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
//  11.7: Array. 
//  -   Array 
#include <iostream> 
using std::cerr; 
using std::cout; 
using std::cin; 
using std::endl; 
 
#include <iomanip> 
using std::setw; 
 
#include <cstdlib> //   exit 
using std::exit; 
 
#include "Array.h" //   Array 
 
//  Array   (   10) 
Array::Array( int arraySize ) 
{ 
   size = ( arraySize > 0 ? arraySize : 10 ) ; //  arraySize 
   ptr = new int[ size ]; //     
   
   for ( int i = 0; i < size; i++ ) 
       ptr[ i ] =0; //   - 
} //   Array   
 
//     Array; 
//        
Array::Array( const Array &arrayToCopy ) 
: size( arrayToCopy.size ) 
{ 
   ptr = new int[ size ] ; //     
   
   for ( int i = 0; i < size; i++ ) 
       ptr[ i ] = arrayToCopy.ptr[ i ]; //    
} //    Array 
 
//    Array 
Array::~Array() 
{ 
  delete [] ptr; //    
} //   
 
//    Array 
int Array::getSize() const 
{ 
  return size; //    Array 
} //   getSize 
 
//   ; 
//   : ( al = 2 ) =  
const Array & Array::operator=( const Array &right ) 
{ 
   if ( &right != this ) //   
   { 
      //        
      //  ,        
      if ( size != right.size ) 
      { 
         delete [] ptr; //   
         size = right.size; //     
         ptr = new int[ size ]; //     
      } //   if 
      
      for ( int i = 0; i < size; i++ ) 
      ptr[ i ] = right.ptr[ i ]; //     
   } //   if 
   
   return *this; //  , ,  =  = z 
} //   operator= 
 
// ,    ,  , 
//  true,     false 
bool Array::operator==( const Array &right ) const 
{ 
   if ( size != right.size ) 
   return false; //      
   
   for ( int i = 0; i < size; i++ ) 
      if ( ptr[ i ] != right.ptr[ i ] ) 
         return false; //    
   
   return true; //   
} //   operator= 
 
//      ; 
//     lvalue 
int &Array::operator[]( int subscript ) 
{ 
   //        
   if ( subscript < 0 || subscript >= size ) 
   { 
      cerr << "\nError: Subscript " << subscript 
      << " out of range" << endl; 
      exit( 1 ); //  ;    
   } //  if 
   
   return ptr[ subscript ]; //   
} //   operator[] 
 
//      ; 
//     rvalue 
int Array::operator[]( int subscript ) const 
{ 
   //        
   if ( subscript < 0 || subscript >= size ) 
   { 
      cerr << "\nError: Subscript " << subscript 
      << " out of range" << endl; 
      exit( 1 ); //  ;    
   } //  if 
   
   return ptr[ subscript ]; //    
} //   operator[] 
 
//      Array; 
//      
istream &operator>>( istream &input, Array &a ) 
{ 
   for ( int i = 0; i < a.size; i++ ) 
       input >> a.ptr[ i ]; 
   
   return input; // enables cin >> x >> y; 
} //   operator>> 
 
//      Array 
ostream &operator<<( ostream &output, const Array &a ) 
{ 
   int i; 
   
   //   ,   
   for ( i = 0; i < a.size; i++ ) 
   { 
      output << setw( 12 ) << a.ptr[ i ]; 
      
      if ( ( i + 1 ) % 4 == 0 ) // no 4     
         output << endl; 
   } //  for 
   
   if ( i % 4 != 0 ) //     
      output << endl; 
   
   return output; //   cout << x << y; 
} //   operator<<
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// . 11.8: fig11_08.cpp 
//     Array. 
#include <iostream> 
using std::cout; 
using std::cin; 
using std::endl; 
 
#include "Array.h" 
 
int main() 
{ 
   Array integers1( 7 ); // 7- Array 
   Array integers2; // 10- Array   
   
   //     integers1 
   cout << "Size of Array integersl is " 
   << integers1.getSize() 
   << "\nArray after initialization:\n" << integers1; 
   
   //     integers2 
   cout << "\nSize of Array integers2 is " 
   << integers2.getSize() 
   << "\nArray after initialization:\n" << integers2; 
   
   //    integersl  integers2 
   cout << "\nEnter 17 integers:" << endl; 
   cin >> integers1 >> integers2; 
   
   cout << "\nAfter input, the Arrays contain:\n" 
   << "integers1:\n" << integers1 
   << "integers2:\n" << integers2; 
   
   //     (!=) 
   cout << "\nEvaluating: integersl != integers2" << endl; 
   
   if ( integers1 != integers2 ) 
      cout << "integersl and integers2 are not equal" << endl; 
   
   //   integers3,    
   // integersl;     
   Array integers3( integers1 ); //    
   
   cout << "\nSize of Array integers3 is " 
   << integers3.getSize() 
   << "\nArray after initialization:\n" << integers3; 
   
   //     (=) 
   cout << "\nAssigning integers2 to integersl:" << endl; 
   integers1 = integers2; // ,     
   
   cout << "integersl:\n" << integers1 
   << "integers2:\n" << integers2; 
   
   //     (==) 
   cout << "\nEvaluating: integers1 == integers2" << endl; 
   
   if ( integers1 == integers2 ) 
      cout << "integersl and integers2 are equal" << endl; 
   
   //    ,  rvalue 
   cout << "\nintegers1[5] is " << integers1[ 5 ]; 
   
   //    ,  lvalue 
   cout << "\n\nAssigning 1000 to integers1[5]" << endl; 
   integers1[ 5 ] = 1000; 
   cout << "integersl:\n" << integers1; 
   
   //      
   cout << "\nAttempt to assign 1000 to integersl[15]" << endl; 
   integers1[ 15 ] = 1000; // :    
   return 0; 
} //  main
05
12 / 12 / 0
: 31.08.2011
: 458
17.07.2014, 23:46  []     "In file included from fig11_08.cpp" #4
, ). -, .

40
uglyPinokkio
, . , . , , . ?
uglyPinokkio
325 / 228 / 41
: 30.05.2014
: 682
18.07.2014, 06:10     "In file included from fig11_08.cpp" #5
05
?
, .
05
12 / 12 / 0
: 31.08.2011
: 458
18.07.2014, 14:04  []     "In file included from fig11_08.cpp" #6
, , , , , . , , ( ). , , .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Ðèñ. 11.9: String.h 
// Îïðåäåëå*èå êë*ññ* String. 
#ifndef STRING_H 
#define STRING_H 
 
#include <iostream> 
using std::ostream; 
using std::istream; 
 
class String 
{ 
   friend îstream &operator<<( ostream &, const String & ) ; 
   friend istream &operator>>( istream &, String & ) ; 
public: 
   String( const char * = "" ); // ê-òîð ïðåîáð*çîâ**èÿ/ïî óìîë÷**èþ 
   String( const String & ); // êî*ñòðóêòîð êîïèè 
   ~String(); // äåñòðóêòîð 
   
   const String &operator=( const String & ); // on. ïðèñâ*èâ**èÿ 
   const String &operator+=( const String & ); // on. êî*ê*òå**öèè 
   
   bool operator!() const; // ïóñò* ëè ñòðîê*? 
   bool operator==( const String & ) const; // ïðîâåðèòü si == s2 
   bool operator<( const String & ) const; // ïðîâåðèòü si < s2 
   
   // ïðîâåðèòü si != s2 
   bool operator!=( const String &right ) const 
   { 
     return !( *this == right ); 
   } // êî*åö ôó*êöèè operator!= 
   
   // ïðîâåðèòü si > s2 
   bool operator>( const String &right ) const 
   { 
     return right < *this; 
   } // êî*åö ôó*êöèè operator> 
   
   // ïðîâåðèòü si <= s2 
   bool operator<=( const String &right ) const 
   { 
     return !( right < *this ); 
   } // êî*åö ôó*êöèè operator <= 
   
   // ïðîâåðèòü si >= s2 
   bool operator>=( const String &right ) const 
   { 
     return !( *this < right ); 
   } // êî*åö ôó*êöèè operator>= 
   
   char &operator[]( int ); // îïåð*öèÿ è*äåêñ*öèè (lvalue) 
   char operator[]( int ) const; // îïåð*öèÿ è*äåêñ*öèè (rvalue) 
   String operator()( int, int = 0 ) const; // âîçâð*òèòü ïîäñòðîêó 
   int getLength() const; // âîçâð*òèòü äëè*ó ñòðîêè 
private: 
   int length; // äëè** ñòðîêè (*å ñ÷èò*ÿ ç*âåðø*þùèé *óëü) 
   char *sPtr; // óê*ç*òåëü ** **÷*ëî ïðåäñò*âëå*èÿ ñòðîêè
   
   void setString( const char * ); // âñïîìîã*òåëü**ÿ ôó*êöèÿ 
}; // êî*åö êë*ññ* String 
 
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
// Ðèñ. 11.10: String.ñðð 
// Îïðåäåëå*èå ýëåìå*ò-ôó*êöèé äëÿ êë*ññ* String. 
#include <iostream> 
using std::cerr; 
using std::cout; 
using std::endl; 
 
#include <iomanip> 
using std::setw; 
 
#include <cstring> // ïðîòîòèïû strcpy è streat 
using std::strcmp; 
using std::strcpy; 
using std::strcat; 
 
#include <cstdlib> // ïðîòîòèï exit 
using std::exit; 
 
#include "String.h" // îïðåäåëå*èå êë*ññ* String 
 
// êî*ñòðóêòîð ïðåîáð*çîâ**èÿ (è ïî óìîë÷**èþ) char* â String 
String::String( const char *s ) 
: length( ( s != 0 ) ? strlen( s ) : 0 ) 
{ 
   cout << "Conversion (and default) constructor: " << s << endl; 
   setString( s ); // call utility function 
} // êî*åö êî*ñòðóêòîð* ïðåîáð*çîâ**èÿ String 
 
// êî*ñòðóêòîð êîïèè 
String::String( const String &copy ) 
: length( copy.length ) 
{ 
   cout << "Copy constructor: " << copy.sPtr << endl; 
   setString( copy.sPtr ); // call utility function 
} // êî*åö êî*ñòðóêòîð* êîïèè String 
 
// äåñòðóêòîð 
String::~String() 
{ 
   cout << "Destructor: " << sPtr << endl; 
   delete [] sPtr; // îñâîáîäèòü ñòðîêó, ïðåäñò*âëå**óþ óê*ç*òåëåì 
} // êî*åö äåñòðóêòîð* -String 
 
// ïåðåãðóæå***ÿ îïåð*öèÿ =; ïðåäîòâð*ù*åò ñ*ìîïðèñâ*èâ**èå 
const String &String::operator=( const String &right ) 
{ 
   cout << "operator= called" << endl; 
   
   if ( &right != this ) // ïðåäîòâð*òèòü ñ*ìîïðèñâ*èâ**èå 
   { 
      delete [] sPtr; // ïðåäîòâð*ù*åò óòå÷êó ï*ìÿòè 
      length = right.length; // *îâ*ÿ äëè** ñòðîêè 
      setString( right.sPtr ); // âûçâ*òü âñïîìîã*òåëü*óþ ôó*êöèþ 
   } // êî*åö if 
   else 
        cout << "Attempted assignment of a String to itself" << endl; 
   
   return *this; // ð*çðåø*åò ê*ñê*ä*îå ïðèñâ*èâ**èå 
} // êî*åö ôó*êöèè operator= 
 
// ïðèñîåäè*èòü ïð*âûé îïåð**ä ê îáúåêòó è ñîõð**èòü â îáúåêòå 
const String &String::operator+=( const String &right ) 
{ 
   size_t newLength = length + right.length; // *îâ*ÿ äëè** 
   char *tempPtr = new char[ newLength + 1 ]; // âûäåëèòü ï*ìÿòü 
   
   strcpy( tempPtr, sPtr ); // êîïèðîâ*òü sPtr 
   strcpy( tempPtr + length, right.sPtr ); // êîïèðîâ*òü right.sPtr 
   
   delete [] sPtr; // îñâîáîäèòü ñò*ðûé ì*ññèâ 
   sPtr = tempPtr; // ïðèñâîèòü sPtr *îâûé ì*ññèâ 
   length = newLength; // ïðèñâîèòü length *îâóþ äëè*ó 
   return *this; // ð*çðåø*åò ê*ñê*ä*ûå âûçîâû 
} // êî*åö ôó*êöèè operator+= 
 
// Ïóñò* ëè ñòðîê*? 
bool String::operator!() const 
{ 
  return length == 0; 
} // êî*åö ôó*êöèè operator! 
 
// Ð*â** ëè ä****ÿ ñòðîê* ïð*âîé ñòðîêå? 
bool String::operator==( const String &right ) const 
{ 
  return strcmp( sPtr, right.sPtr ) == 0; 
} // êî*åö ôó*êöèè operator== 
 
// Ìå*üøå ëè ä****ÿ ñòðîê* ïð*âîé ñòðîêå? 
bool String::operator<( const String &right ) const 
{ 
  return strcmp( sPtr, right.sPtr ) < 0; 
} // êî*åö ôó*êöèè operator< 
 
// âîçâð*òèòü ññûëêó ** ñèìâîë ñòðîêè ê*ê ìîäèôèöèðóåìîå lvalue 
char &String::operator[] ( int subscript ) 
{ 
   // ïðîâåðèòü ** âûõîä è*äåêñ* èç äè*ï*çî** 
   if ( subscript < 0 || subscript >= length ) 
   { 
      cerr << "Error: Subscript " << subscript 
      << " out of range" << endl; 
      exit( 1 ); // ç*âåðøèòü ïðîãð*ììó 
   } // êî*åö if 
   
   return sPtr[ subscript ]; // ìîäèôèöèðóåìîå lvalue 
} // êî*åö ôó*êöèè operator[] 
 
// âîçâð*òèòü ññûëêó ** ñèìâîë ñòðîêè ê*ê rvalue 
char String::operator[] ( int subscript ) const 
{ 
   // ïðîâåðèòü ** âûõîä è*äåêñ* èç äè*ï*çî** 
   if ( subscript < 0 || subscript >= length ) 
   { 
      cerr << "Error: Subscript " << subscript 
      << " out of range" << endl; 
      exit( 1 ); // ç*âåðøèòü ïðîãð*ììó 
   } // êî*åö if 
   
   return sPtr[ subscript ]; // âîçâð*ù*åò êîïèþ ýëåìå*ò* 
} // êî*åö ôó*êöèè operator[] 
 
// âîçâð*òèòü ïîäñòðîêó, **÷è**þùóþñÿ ñ index è äëè*îé subLength 
String String::operator()( int index, int subLength ) const 
{ 
   // åñëè è*äåêñ â*å äè*ï*çî** èëè äëè** ñòðîêè < 0, 
   // âîçâð*òèòü ïóñòîöé îáúåêò String 
   if ( index < 0 || index >= length || subLength < 0 ) 
      return ""; // *âòîì*òè÷åñêè ïðåîáð*çóåòñÿ â îáúåêò String 
   
   // îïðåäåëèòü äëè*ó ïîäñòðîêè 
   int len; 
   
   if ( ( subLength == 0 ) || ( index + subLength > length ) ) 
      len = length - index; 
   else 
        len = subLength; 
   
   // âûäåëèòü âðåìå**ûé ì*ññèâ äëÿ ïîäñòðîêè 
   //è ç*âåðø*þùåãî *óëåâîãî ñèìâîë* 
   char *tempPtr = new char[ len + 1 ]; 
   
   // êîïèðîâ*òü ñòðîêó â ì*ññèâ è ç*âåðøèòü ñòðîêó 
   strncpy( tempPtr, &sPtr[ index ], len ); 
   tempPtr[ len ] = '\0'; 
   
   // ñîçä*òü âðåìå**ûé îáúåêò String, ñîäåðæ*ùèé ïîäñòðîêó 
   String tempString( tempPtr ); 
   delete [] tempPtr; // óä*ëèòü âðåìå**ûé ì*ññèâ 
   return tempString; // âîçâð*òèòü êîïèþ âðåìå**îãî îáúåêò* String 
} // êî*åö ôó*êöèè operator() 
 
// âîçâð*òèòü äëè*ó ñòðîêè 
int String::getLength() const 
{ 
  return length; 
} // êî*åö ôó*êöèè getLength 
 
// âñïîìîã*òåëü**ÿ ôó*êöèÿ, âûçûâ*åì*ÿ êî*ñòðóêòîð*ìè è operator= 
void String::setstring( const char *string2 ) 
{ 
   sPtr = new char[ length +1 ]; // âûäåëèòü ï*ìÿòü 
   
   if ( string2 != Î ) // åñëè string2 - *å NULL, êîïèðîâ*òü 
      strcpy( sPtr, string2 ); // êîïèðîâ*òü ëèòåð*ë â îáúåêò 
   else // åñëè string2 - NULL, ñäåë*òü this ïóñòîé ñòðîêîé 
        sPtr[ 0 ] = '\0'; // ïóñò*ÿ ñòðîê* 
} // êî*åö ôó*êöèè setString 
 
// ïåðåãðóæå***ÿ îïåð*öèÿ âûâîä* 
ostream &operator<<( îstream &output, const String &s ) 
{ 
   output << s.sPtr; 
   return output; // ð*çðåø*åò ê*ñê*äèðîâ**èå 
} // êî*åö ôó*êöèè operator<< 
 
// ïåðåãðóæå***ÿ îïåð*öèÿ ââîä* 
istream &operator>>( istream &input, String &s ) 
{ 
   char temp[ 100 ]; // áóôåð äëÿ õð**å*èÿ ââîä* 
   input >> setw( 100 ) >> temp; 
   s = temp; // èñïîëüçîâ*òü îïåð*öèþ ïðèñâ*èâ**èÿ êë*ññ* String 
   return input; // ð*çðåø*åò ê*ñê*äèðîâ**èå 
} // êî*åö ôó*êöèè operator>>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// Ðèñ. 11.11: fig11_11.cpp 
// Òåñòîâ*ÿ ïðîãð*ìì* äëÿ êë*ññ* String. 
#include <iostream> 
using std::cout; 
using std::endl; 
using std::boolalpha; 
 
#include "String.h" 
 
int main() 
{ 
   String s1( "happy" ); 
   String s2( " birthday" ); 
   String s3; 
   
   // òåñòèðîâ*òü ïåðåãðóæå**ûå îïåð*öèè ð*âå*ñòâ* è îò*îøå*èé 
   cout << "s1 is \"" << s1 << "\"; s2 is \"" << s2 
   << "\"; s3 is \"" << s3 << '\"' 
   << boolalpha << "\n\nThe results of comparing s2 and s1:" 
   << "\ns2 == s1 yields " << ( s2 == s1 ) 
   << "\ns2 != s1 yields " << ( s2 != s1 ) 
   << "\ns2 > s1 yields " << ( s2 > s1 ) 
   << "\ns2 < s1 yields " << ( s2 < s1 ) 
   << "\ns2 >= s1 yields " << ( s2 >= s1 ) 
   << "\ns2 <= s1 yields " << ( s2 <= s1 ); 
   
   
   // òåñòèðîâ*òü ïåðåãðóæå**óþ îïåð*öèþ "ïóñòî" (!) êë*ññ* String 
   cout << "\n\nTesting !s3:" << endl;
    
   if ( !s3 ) 
   { 
      cout << "s3 is empty; assigning s1 to s3;" << endl; 
      s3 = s1; // ïðîòåñòèðîâ*òü ïåðåãðóæå**îå ïðèñâ*èâ**èå 
      cout << "s3 is \"" << s3 << "\""; 
   } // êî*åö if 
   
   // òåñòèðîâ*òü ïåðåãðóæå**óþ îïåð*öèþ êî*ê*òå**öèè ñòðîê 
   cout << "\n\ns1 += s2 yields si = "; 
   s1 += s2; // ïðîòåñòèðîâ*òü ïåðåãðóæå**óþ êî*ê*òå**öèþ 
   cout << s1; 
   
   // òåñòèðîâ*òü êî*ñòðóêòîð ïðåîáð*çîâ**èÿ 
   cout << "\n\ns1 += \" to you\" yields" << endl; 
   s1 += " to you"; // test conversion constructor 
   cout << "s1 = " << s1 << "\n\n"; 
   
   // òåñòèðîâ*òü îïåð*öèþ âûçîâ* () äëÿ ïîäñòðîêè 
   cout << "The substring of s1 starting at\n" 
   << "location 0 for 14 characters, s1(0, 14), is:\n" 
   << s1( 0, 14 ) << "\n\n"; 
   
   // òåñòèðîâ*òü ñëó÷*é ïîäñòðîêè "äî êî*ö* ñòðîêè" 
   cout << "The substring of s1 starting at\n" 
   << "location 15, s1 (15), is: " 
   << s1( 15 ) << "\n\n"; 
   
   // òåñòèðîâ*òü êî*ñòðóêòîð êîïèè 
   String *s4Ptr = new String( s1 ); 
   cout << "\n*s4Ptr = " << *s4Ptr << "\n\n"; 
   
   // òåñòèðîâ*òü îïåð*öèþ ïðèñâ*èâ**èÿ (=) ñ ñ*ìîïðèñâ*èâ**èåì 
   cout << "assigning *s4Ptr to *s4Ptr" << endl; 
   *s4Ptr = *s4Ptr; // ïðîòåñòèðîâ*òü ïåðåãðóæå**îå ïðèñâ*èâ**èå 
   cout << "*s4Ptr = " << *s4Ptr << endl; 
   
   // òåñòèðîâ*òü äåñòðóêòîð 
   delete s4Ptr; 
   
   // òåñòèðîâ*òü èñïîëüçîâ**èå è*äåêñ*öèè äëÿ ïîëó÷å*èÿ lvalue 
   s1[ 0 ] = 'Í'; 
   s1[ 6 ] = 'Â'; 
   cout << "\ns1 after s1[0] = 'H' and s1[6] = 'B' is: " 
   << s1 << "\n\n"; 
   
   // òåñòèðîâ*òü âûõîä è*äåêñ* èç äè*ï*çî** 
   cout << "Attempt to assign 'd' to s1[30] yields:" << endl; 
   s1[ 30 ] = 'd'; // ÎØÈÁÊÀ: è*äåêñ â*å äè*ï*çî** 
   return 0; 
} // êî*åö main
alsav22
5282 / 4801 / 442
: 04.06.2011
: 13,587
18.07.2014, 15:30     "In file included from fig11_08.cpp" #7
- : , o (ostream), - (if ( string2 != 0 )). void String::setstring( const char *string2 ) ( String.)? , setString.
uglyPinokkio
325 / 228 / 41
: 30.05.2014
: 682
18.07.2014, 17:50     "In file included from fig11_08.cpp" #8
alsav22
-
pdf . , .
alsav22
5282 / 4801 / 442
: 04.06.2011
: 13,587
18.07.2014, 19:09     "In file included from fig11_08.cpp" #9
, -, .
 : rar .rar (3.8 , 1 )
05
12 / 12 / 0
: 31.08.2011
: 458
18.07.2014, 23:57  []     "In file included from fig11_08.cpp" #10
uglyPinokkio
pdf .
, ). , ++, . . s1 si.
alsav22
o (ostream)
? , .
alsav22
void String::setstring( const char *string2 ) ( String.)?
, . , .

3
alsav22
, -, .
? , . , . .
alsav22
5282 / 4801 / 442
: 04.06.2011
: 13,587
19.07.2014, 00:24     "In file included from fig11_08.cpp" #11
05
?
( ).
05
?
.
MoreAnswers
37091 / 29110 / 5898
: 17.06.2006
: 43,301
19.07.2014, 05:33     "In file included from fig11_08.cpp"
:

C++ : "Access violation writing location"
: "CTriangle: No such file or directory". ? C++
Main.cpp In file included from main.cpp C++



:
uglyPinokkio
325 / 228 / 41
: 30.05.2014
: 682
19.07.2014, 05:33     "In file included from fig11_08.cpp" #12
05
, ). , ++, . . s1 si.
, .
Yandex
19.07.2014, 05:33     "In file included from fig11_08.cpp"

: 07:44. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru