7.2.
, ,
- ,
. ,
String vowel( "a"
);
String article = vowel;
article
vowel article.
.
.
X::X( const X& );
String
:
Stirng::String( const String& )
{ len = s.len;
str =
s.str; }
:
1.
. ,
// String::String( char* );
String
color( "blue" );
// memberwise initialization generated
String mood =
color;
2. .
:
extern int count( Stirng s, char ch );
// local instance of
s <== mood
int occurs = count( mood, e );
3.
. , extern String sub( String&, char, char
);
main() {
String rriver( "mississippi" );
cout << river
<< " " << sub( river, i, I ) << "n"; }
, , ,
. ,
-- --
. ( 4.6.
--).
.
, , ; -
. , Word , occurs,
String, name.
Word:
Word noun( "book" );
Word vern = noun;
verb
:
1. occurs
noun.occurs.
2. name
String.
. . 7.1
, count verb. :
1. count
noun count verb. ,
.
Word.
2. str noon verb .
.
,
. ,
, ,
.
. 7.1, , ,
,
. .
, .
.
,
.
.
X(const X&)
, ,
,
.
X(const
X&). ,
.
,
String::String( const String& s )
{ len = s.len;
str
= new char[ len + 1 ];
strcpy( str, s.str ); }
String(const String& )
, String .
str .
7-7.
Screen(const Screen&) Screen,
6. ,
.
7-8. IntList(const
IntList&) IntList, 5. ,
.
X(const X&)
, X(const X&)
, :
1.
X(const X&), .
2.
X(const X&).
,
Word, Word Word(const Word&).
, String, , String(const
String&).
class Word {
public: Word( char *s, int cnt = 0 ) :
name(s), occurs(cnt) {}
Word( String& s, int cnt = 0 ) : name(s),
occurs(cnt) {}
private:
int occurs;
String name;
};
Word
. String, ,
String(const String&). ,
String mystery(
"rosebud" );
Word resolve( mystery );
extern search( Word wd );
search(
resolve );
String(const String&)
name resolve name wd. ,
.
, X(const X&), ,
, .
Word(const Word&). Word
.
Word, :
//
this implementation is incorrect
Word::Word( const Word& w )
{ occurs
= 0;
name = w.name; }
name String. :
Word
weather( "warm" );
Word feeling = wither;
:
1. feeling
Word(const Word&).
Word(const Word&)? , ; ,
. Word(const Word&) .
2.
? .
3.
? . name String.
4. String
, ?
; .
5. String()
feeling.name.
6. Word(const Word&).
name = w.name. ,
,
(. 7.3 ). String(const String&)
.
,
. ( 7.1 -
const ).
String name w.name.
, name .
Word :
Word::Word( const
Word& w ) : name ( w.name )
// initialization {
// assignment
occurs = w.occurs; }
,
X(const X&),
. X(const X&),
.
X(const X&), ,
.
7-9.
Buf(const Buf&) ( . 7-2).
7-10.
INode(const INode&) BinTree(const
BinTree&).
.
; -
inline. ,
,
.
.
.
,
. ,
, const reference .
:
.
. ,
.
,
.
.
X(const X&), .
, ,
.