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
|
#include <iostream>
#include <stdio.h>
class
base
{
public
:
base()
:baseName(
""
),baseData(0)
{}
base(std::string bn,
int
bd)
:baseName(bn),baseData(bd)
{}
std::string getBaseName()
const
{
return
baseName;
}
int
getBaseData()
const
{
return
baseData;
}
private
:
std::string baseName;
int
baseData;
};
class
derived:
public
base
{
public
:
derived():base(),derivedName(
""
)
{}
derived(std::string bn,
int
bd,std::string dn)
:base(bn,bd),derivedName(dn)
{}
std::string getDerivedName()
const
{
return
derivedName;
}
private
:
std::string derivedName;
};
void
show(std::string& info,
const
base& b)
{
info.append(
"Name is "
);
info.append(b.getBaseName());
info.append(
", baseData is "
);
char
buffer[10];
sprintf
(buffer,
"%d"
,b.getBaseData());
info.append(buffer);
}
int
main(
int
argc,
char
* argv[])
{
base b(
"test"
,10);
std::string s;
show(s,b);
std::cout<<s<<std::endl;
derived d(
"btest"
,5,
"dtest"
);
std::string ss;
show(ss,d);
std::cout<<ss<<std::endl;
return
0;
}
|