Вы находитесь на странице: 1из 28

1. ? ?

: .
- .
2. ? ?
. . . boost::tuple
3. ? ?
. .
4. , ?
?
, . . .
5.
?
.
6. ? ?
. private
7. ++ ?
class, struct
8. .
.
9. ?
.
10. public private?
.
11. public private ?
.
12. public private ?
?
. .
13. ?
.
14. ? ?
- , .
, , -
.
15. ?
.
16. ? ?
?
class A
{
void method x{}
};
17. ?
. .
18. this?
, .
19. ?
?

,
.
20. -?
-?
. .
21. .
.
,
.
- . ,
.
- .
.
22. ? ?
, , , (1 char gcc 32 bit).
23. ?
- . .
24. ?
.
25. ?
.
26. ? , ?
sizeof, ., .*, typeid ?:
- .
27. ?
, - .
, .
28. ?
.
29. ?
. .
30. .
?
, .
31. ?
.
32.
?
.
33. *this? ?
.
, .
34. ? ?
, .
.
35. ?
, , lvalue.
= [] ->

36. .
? ?
.
.
.
37. . ?
.
.
. , .
,
.
38. ?
? ?
. . default ctor, copy ctor.
39. ?
?
. .
40. , .
, , ,
.
41. ?

new
placement new
new(nothrow)
42. ? ?
const int x; const double x;
43. ?
,
,
44. ?
?
. .
45. ++
?
rvalue, lvalue
46.
?
explicit
47. ? ?
.
.
static_cast -

reinterpret_cast -

dynamic_cast - RTTI.
const_cast - const volatile
operator int() const {return v;}
48. ,
?
explicit
49. ?

,
.
50. explicit?

.
51. - ?
static, .
52. .
?
. - . ,
.
53. []?
?
. . .
54. ? ?
. static int i;
55. ?
class A { static const int I[3]; } A::I[3] = {1, 2};
56. ?
?
,
. , . .
57. .
- , .
58. ++ ?


vector
list
deque

stack -
queue -
priority_queue -

map -
multimap
set
multiset

string
valarray
bitset
vector<bool>
59. ?
, .
60. ?
: .
61. ,
.
begin(), end(), , .
62. .

, . ,
, - . : ,
.
63. ?
?
. .
64. ++?
- .
65. ? ?
, . .
66. - ?

, , , .
67. ?
, .
68. ?
, .
.
69. ?
. ,
.
70. ?

- , .
- .
.
71. ,
?
, .
.
72.
()? []?
. ()
.
73. ?
?
const. ,
.
74. .
, .
75. - ? ?
?
. .
.
76.
? ?
. .
77. ?
.

78. ?
?
. , .
.
79. ?
?
, , public.
.
80. , ?
, . .
81. , ,
.
- .
82. ++, .
try, catch, throw
83. :
1) ;
2) ;
3) ;
4) ;
5) ;
, .
84. ?
. -.
85. ?
, .
86. catch?
1) ;
2) ;
3) -;
4) ;
5) ;
2,3,5
87. ?
. .
88. -?
.
89. ?
, .
90. ,
.
, .
91.
-?
.
92. , .
catch(...){}
93. ?
.

94. -
?
.
: , .
class X {
vector v;
public:
explicit X(int);
};
X::X(int s)
try
:v(s)
{
//...
}
catch(bad_alloc)
{
//...
}
95. .
, , .
96. ?
throw
97. - ?
. - .
98. ?
,
.
void fu(int a) throw(x2, x3);
99. , ?
std::unexpected() terminate().
100. ?
.
.
101. ?
, .
102. ? -
.
.
exception
<- logic_error
<- domain_error
<- invalid_argument
<- length_error
<- out_of_range
<- runtime_error
<- range_error
<- overflow_error
<- underflow_error
103. .
,
. .
104. , .
( ).
105. ?
- ?

106. Windows
?
SEH. . __try{}
__except{} __try{} __finally{}
SEH .
.
107. ?
.
108. ++?
, , .
109. protected private
public?
.
110. ?
.
111. ? ?
. ,
.
112. .
, .
113. ? ?
: ()

.
.
.



114. ? ?
. .
115. ,
?
::
116. , -
?
.
117. .

.
, ,
, .
, ,
, .
118. ?
:)
.
119. , .
,
. (,
) .
, , .

120. , .
.
121. ?
, . , .

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

.
,
.

, .
. - , . , ,
.
extern .
122. ?
- . -
.
123. ++?
. .
124. .
.
125. ?
.
126. ?
.
127.
?
. ,
.
128. , , ?
.
129. ? ?
. .
130. ?
.
. - .
131. ?
0.
class A { virtual void d() = 0; }
132. .
, .
133. ?
.

134. ?
. .
135. ?
.
136. ?
.
, , .
137. ?
. .
138. .
.
139. .
, - .
140. , .
, , ODR.
141. ?
.
142. ?
- , . - ,
.
143. ++ ,
?
, .
144. ?
.
145. ? ,
, _____________ ?
.
.
146. <> #include?
.
147. ODR?
. One definition rule.
.
148. , .
#ifdef SYMBOL
ODR
149. ?
. .
150. ?
.
151. ?
, .
152. <string>, <string.h> <cstring>?
STL, CRT, CRT
153. Pimpl.

. .
154.
?
,
.
.
.
155. ,
, ? ?
int x = 10; extern int x;
extern const int x = 10; extern const int x;
156. extern ?
.
157. ?
static( )
()
158. ?
, .
-
.
159. ?
, ,
.
, ( ).
160. ?

161. ?
, , ,
, .
162. ?
.
.
163. ?
namespaces
, namespace.
164. ?
.
165. ?
.
166. (
) ?
using namespace xxx;
167. .
/.
168. ?
, .
169. ?
, ,

170. ?
?
. .
171. ?
.
172. ?
?
static
main
173. ?
0
174. ?
this
175. ?
, ,
176. ?
?
. .
, .
177. Singleton.
. .
.
- .
178. ?
.
179. ++ ?
.
180. .
.
181. ?
, .
182. typename.
, - . ,
, .
class .
183. ?
?
(typename, class), (int),
184. ?
.
185. ?
-?
.
.
186. ?
.
.
- . -
.

187. ?
, . - .
188. - -?
?
. .
189. ? ?
. .
190. -?
.
191. - ?
. .
192. ?
?
. .
193. , ( ).
, .
194.
?
.
195. ?
.
196. ?
/.
.
197. , ,
?
cpp (
)
198. ?
cpp .
, template basic_string<char> string;
199. ?
.
200. ?
, .
201. - ?
?
. .
202. ?
0, .
203. ++?
++?
. ,
++. - ,
.
204. sizeof?
1?
char.

char,
205. ++?

()
()
206. ++?
( )
207. ++
? ?
alloc free
cstdlib
208. ,
?
malloc, free
209. calloc() malloc()?
.
210. ,
?
NULL.
211. ?
?
. .
212. realloc() ?
.
213. , free()
?
.
214. - new/delete
malloc()/free()?
- ,
. .
, .
215. new/delete? ?
new, new[], delete, delete[]
.
, nothrow
216. POD-? new/delete
POD- nonPOD-?
Plain old data. , . ,
POD-.
new X -
new X() -
217. new?
new_handler
.
218. new
new/delete?
. set_new_handler()
219. ++?
, .

220. ?
?
. , .
221. ?
?
. .
222. new?
" - , ".
- -.
223. , new
?
,
.
224. ?
.
.
225. ? ?
,
-
-

- , . 0
- ,
, .
- ,
( ).
226. STL,
?
auto_ptr,
227. ,
.
. .
228. new delete ?
. , .
229. , new.
void *operator new(size_t size(){}
void operator delete[](void *p);
230. new[]()
new()?
. ,
.
231. , new/delete, ,
?
, , .
232. new/delete
?
.
233. , ?
? ?
234. ,
?

.
, , .
235. :
, .
?
list
236.
?
()
237. []
?

238. ?
++
239. ?
.
240. ?
typedef char* (Someclass::*func_ptr)(int, char*);
241. .
- . - .
,
.
242. ?
&Class::somefunc;
243. ?
.
244. ++
?
.* ->*
245. ? .
, , . ().
class Functor
{
bool operator()(int x) {return static_cast<bool>(x);}
};
246. ?
.
247. ?
.
248. () ?
?
. .
249. ?

,
() ,
250. , ? ?
, , .
, , ,

251. ?
.
252. , ?
"".
. - . "" .
253. , ?
.
254. Adapter.
,
.
255. .

.
,
.
.
256. ?
, .
257. ?
?
, ,
.
- .
258. ?
.
259. ?
. .
260. ,
.
class my_class;
class nonderivable
{
friend class my_class;
private:
nonderivable() { }
};
class my_class: public virtual nonderivable
{
public:
my_class(){}
};
class DD: public my_class { };
int main()
{
my_class a;
DD dd; // error
return 0;
}
261. ++ RTTI?
dynamic_cast, typeid

262. , .
, ,
263. , RTTI?
.
264. ?
dynamic_cast , , ,
0
265. RTTI?
,
dynamic_cast
266. .
, ( ).
- ++
267. , / ++?
: ,
: ,
268. ?
,
.
269. / ++ ?
<iostream> -
<cstdio> -
270. .
stdin, stdout, stderr
0,1,2
271. ?
- .
, .
272. , ?
, . -
.
273. .
,
% - ,
g -
e -
f -
i -
c -
s -
274. ?
( )
275. ?
#
276.
, .
g -
e -
f -
i -
c -
s -

277. ,
?
c,d,i,o,x,f,e,g
278. ?
?
ios_base::left
ios_base::showpoint
279. ,
?
- - . - ,
-
280.
(*)? ?
. " -" .
281. ?
, str - .
-,
, getline()
- isspace(), <cctype>
282. ?
get(, )
-
283. /
<cstdio>?
, .
284. , . ?
.
285. ?
operator<< operator>>
286. string ( ) ?
.
287. , .
. - " ",
. - (
, -, ...)
, , ,
- .
288. , ?
, ,
.
" .
289. ?
.
290. ?
?
. , .
291. . r a?
r a w
, ,

292. (+)?

293. ?
?
. ,
.
294. ? ?
..
295. / ?
fprintf
fscanf
296. / .
fget
fput
297. <cstdio>
?
?
fseek, fread, fwrite
.
298. fseek().
- .
299. ftell() fgetpos()?
, ,
.
300. , ?
?
, .
, , . ,
. ++ - .

301.
?
.
302. -
?
-
, .
303. ?
?
good, bad, fail

304. - ?
cin, cout, cerr, clog
305. -
?

306.
? <cstdio>?
width()
. *

307. -
.
- . .
- . .
308. string ?
getline()
309. ?
?
-.
310. ?
?
. ,
, .
311. - ?
.
312. , <cstdio>,
- ? ?
. .
313. - .
?
, , , ,
""
314. , -
? ?
.
315. ?
std::fstream .
316. ?
ios_base app
317. ?
int i = 938745;
cout << bitset<32>(i);
.
318. /?
.
319. - ?
class redirecter
{
public:
redirecter(std::ostream & dst, std::ostream & src)
: src(src), sbuf(src.rdbuf(dst.rdbuf())) {}
~redirecter() { src.rdbuf(sbuf); }
private:
std::ostream & src;
std::streambuf * const sbuf;
};
int main()
{
std::ofstream log("hello-world.log");
redirecter redirect(log, std::cout);
std::cout << "Hello, world!\n";
return 0;
}

320. ?
ostream dst; istream src;
dst << src.rdbuf();
321. / ?
?
fprintf, fscanf
fread, fwrite
322. -
?
<cstdio>.
.
323. - ,
?
iostream -
stringstream -
324. , /
.
class A
{
public:
int getField(){return i;}
int setField(int i) { this->i = i; }
A(int i):i(i);
private:
int i;
};
std::ostream& operator<<(std::ostream& s, A a) { s << a.getField(); return s; }
std::istream& operator>>(std::istream& s, A a) { int i = 0; s >> i;
a.setField(i); return s; }
325. / -
?

326. /?
?
ios_base::failure
. , ,
cout.extensions(ios_base::badbit|ios_base::eofbit);
327. ?
() wchar_t, .
328. , ?
,
.
, .
329. ?
:
locale loc("ru_RU.UTF8");
locale::global(loc);
330. / ? ?
- .
331. .
?
vector - ,
(1), O(n)

list - ,

dequeue - ,

332.
.
queue, stack, priority_queue
333. -
?
pop_front
334. queue
priority_queue?

, .
335. ?
, .
( <),
.
336. ? ?
. , .
337.
auto_ptr?
auto_ptr
338. list
?
?
sort . .
339. ,
.
, .
340. ?
? ?
.. .
341. , ,
?
, ,
.
342. - ?
,
343. at()
?
. .
344. deque,
.
empty
max_size
size
345. size() capacity()?
max_size()?
, ,
.

346. list,
.
?
insert
push_front
pop_front
push_back
pop_back
, .
347. ?
<. .
equal mismatch.
348. ,
?
, . : - "-",
.
349. ?
set, multiset, map, multimap.
, , .
350. map multimap?
.
351. , ,
.
, .
352. -
, , ?
.
.
set_union
set_intersection
set_difference
set_symmetric_difference
353. - ?
.
354. , ,
? ?
. ,
.
355. make_pair()
pair()?
, , .
356. - ,
- ?
.
357. ?
- .
- .
358.
?
- , .
- ,
.
,
- .

359. 4
?
--------360. ?
. , , , .
.
. . -

.
361. bitset vector<bool>?
, . .
vector<bool> .
362. .
- . , , -
. , , .

.
.
.
363. ? ,
, ?

.
begin, end
364. ?
, .
365. , .
?

.
.
366. ?
?
, , , ,
.
.
.
367. ?
.
.
368. ?
?
advance() distance()
,
.
.
369. ?
revesre iterators.
370. , .
,
.
371. ?
, .

372. ?
, ,
.
373. STL?
?


374. bind1st() bind2nd()?

375. -?
.
376. remove() ?
?

. .
erase();
377. ?
.
.
378. unique()?
.
379. ?
.
380. ?
.
381.
? ?
,
.
382. ?
?

transform
fill
generate
replace
reverse
383. generate()
, ?
inserter
384. ,
.
for_each
transform
copy
replace
fill
385. for_each() ?
, ,
. .
-vtbl, vptr

. gcc .
- .

" ", .
.
, ,
.
- .
:
D* B*
: ,
:
.
.

.
-
class XX: B{}
struct YY: B{}

- ""?
,
-

- ?
, , .
- ?
,

- " "?

.
- , ,
- ? ?
. .
- ?

- , - ,
.

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

,
, .

- :

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

-
,
. -,
. :
, . ,
.
void foobar( void );
void foobar();
?
, ++.
" ", "
". ++ ,
- .
?
------------

Оценить