od -c filename 命令解释:od查看文件内容, -c: ASCII字符。
排查200, 343位置内容。此处问题原因:缩进问题。
[root@bogon C++]# g++ test_class_constructor_copy.cpp -o test_class_constructor_copy
test_class_constructor_copy.cpp:10:5: 错误:程序中有游离的‘\343’{ a = b;}^
test_class_constructor_copy.cpp:10:5: 错误:程序中有游离的‘\200’
test_class_constructor_copy.cpp:10:5: 错误:程序中有游离的‘\200’
test_class_constructor_copy.cpp:13:5: 错误:程序中有游离的‘\343’void Show ()^
test_class_constructor_copy.cpp:13:5: 错误:程序中有游离的‘\200’
test_class_constructor_copy.cpp:13:5: 错误:程序中有游离的‘\200’
test_class_constructor_copy.cpp:14:5: 错误:程序中有游离的‘\343’{^
test_class_constructor_copy.cpp:14:5: 错误:程序中有游离的‘\200’
test_class_constructor_copy.cpp:14:5: 错误:程序中有游离的‘\200’
[root@bogon C++]#
[root@bogon C++]# od -c test_class_constructor_copy.cpp
0000000 # i n c l u d e < i o s t r e
0000020 a m > \n u s i n g n a m e s p
0000040 a c e s t d ; \n \n c l a s s
0000060 C E x a m p l e { \n p r i v a
0000100 t e : \n 343 200 200 i n t a
0000120 ; \n p u b l i c : \n
0000140 / / 346 236 204 351 200 240 345 207 275 346 225 260 \n
0000160 343 200 200 C E x a m p l e ( i
0000200 n t b ) \n 343 200 200 { a
0000220 = b ; } \n \n / /
0000240 344 270 200 350 210 254 345 207 275 346 225 260 \n
0000260 343 200 200 v o i d S h o w ( )
0000300 \n 343 200 200 { \n
0000320 c o u t < < a < < e n d l ;
0000340 \n } \n } ; \n i n t
0000360 m a i n ( ) \n { \n 343 200 200
0000400 C E x a m p l e A ( 1 0 0 ) ;
0000420 \n 343 200 200 C E x a m p l e
0000440 B = A ; / / 346 263 250 346 204 217
0000460 350 277 231 351 207 214 347 232 204 345 257 271 350 261 241 345
0000500 210 235 345 247 213 345 214 226 350 246 201 350 260 203 347 224
0000520 250 346 213 267 350 264 235 346 236 204 351 200 240 345 207 275
0000540 346 225 260 357 274 214 350 200 214 351 235 236 350 265 213 345
0000560 200 274 \n 343 200 200 B . S h o w
0000600 ( ) ; \n 343 200 200 r e t u
0000620 r n 0 ; \n } \n
0000630
[root@bogon C++]#
[root@bogon C++]# od -c test_class_constructor_copy.cpp #修改后可正常编译
0000000 # i n c l u d e < i o s t r e
0000020 a m > \n u s i n g n a m e s p
0000040 a c e s t d ; \n \n c l a s s
0000060 C E x a m p l e { \n p
0000100 r i v a t e : \n i n
0000120 t a ; \n p u b l i c :
0000140 \n C E x a m p l e (
0000160 i n t b ) / / 346 236 204 351 200 240 345
0000200 207 275 346 225 260 \n { \n
0000220 a = b ; \n
0000240 } \n \n v o i
0000260 d S h o w ( ) / / 344 270 200
0000300 350 210 254 345 207 275 346 225 260 \n
0000320 { \n c o u t < <
0000340 a < < e n d l ; \n }
0000360 \n } ; \n i n t m a i n ( ) \n {
0000400 \n C E x a m p l e A (
0000420 1 0 0 ) ; \n C E x a m p
0000440 l e B = A ; / / 346 263 250 346
0000460 204 217 350 277 231 351 207 214 347 232 204 345 257 271 350 261
0000500 241 345 210 235 345 247 213 345 214 226 350 246 201 350 260 203
0000520 347 224 250 346 213 267 350 264 235 346 236 204 351 200 240 345
0000540 207 275 346 225 260 357 274 214 350 200 214 351 235 236 350 265
0000560 213 345 200 274 , 347 263 273 347 273 237 344 270 272 345 257
0000600 271 350 261 241 B 345 210 206 351 205 215 345 206 205 345 255
0000620 230 357 274 214 344 275 277 347 224 250 345 220 214 344 270 200
0000640 347 261 273 345 210 233 345 273 272 347 232 204 345 257 271 350
0000660 261 241 A 346 235 245 345 210 235 345 247 213 345 214 226 B
0000700 \n B . S h o w ( ) ; \n
0000720 r e t u r n 0 ; \n } \n
0000740
[root@bogon C++]#
[root@bogon C++]# g++ test_class_constructor_copy.cpp -o test_class_constructor_copy
[root@bogon C++]# ./test_class_constructor_copy
100
[root@bogon C++]# cat test_class_constructor_copy.cpp
#include <iostream>
using namespace std;class CExample {private:int a;public:CExample(int b) //构造函数{a = b;}void Show () //一般函数{cout<<a<<endl;}
};
int main()
{CExample A(100);CExample B = A; //注意这里的对象初始化要调用拷贝构造函数,而非赋值,系统为对象B分配内存,使用同一类创建的对象A来初始化BB.Show ();return 0;
}
od -t acodx zzzzz.cpp
说明:
-t指定输出类型
a 显示字节为字符,并且用它们的 ASCII 名称显示。
c ASCII字符
o 八进制
d 十进制
x 十六进制
[root@bogon C++]# od -t acodx zzzzz.cpp
0000000 # i n c l u d e sp < i o s t r e
# i n c l u d e < i o s t r e
14333464443 14531072554 15732236040 14534472163
1668180259 1701082476 1869167648 1701999731
636e6923 6564756c 6f693c20 65727473
0000020 a m > nl u s i n g sp n a m e s p
a m > \n u s i n g n a m e s p
01217466541 15632271565 14133420147 16034662555
171863393 1852404597 1634607207 1886610797
0a3e6d61 6e697375 616e2067 7073656d
0000040 a c e sp s t d ; nl nl c l a s s sp
a c e s t d ; \n \n c l a s s
04031261541 07331072163 15430605012 04034671541
543515489 996439155 1818429962 544437089
20656361 3b647473 6c630a0a 20737361
0000060 C E x a m p l e sp { nl p r i v a
C E x a m p l e { \n p r i v a
14136042503 14533070155 16002475440 14135464562
1635272003 1701605485 1879735072 1635150194
61784543 656c706d 700a7b20 61766972
0000100 t e : nl sp sp sp sp c nul nul i n t sp a
t e : \n 343 200 200 i n t a
01216462564 04010020040 15140100343 14110072156
171599220 538976288 1770029283 1629516910
0a3a6574 20202020 698080e3 6120746e
0000120 ; nl p u b l i c : nl sp sp sp sp sp sp
; \n p u b l i c : \n
16534005073 14332266142 04010005072 04010020040
1970276923 1667853410 538970682 538976288
75700a3b 63696c62 20200a3a 20202020
0000140 / / f rs eot i nul sp e bel = f nak 0 nl sp
/ / 346 236 204 351 200 240 345 207 275 346 225 260 \n
23671427457 24040164604 34657303745 04002530225
-1629081809 -1602164348 -423786523 537571477
9ee62f2f a080e984 e6bd87e5 200ab095
0000160 sp sp sp c nul nul C E x a m p l e ( i
343 200 200 C E x a m p l e ( i
34310020040 10520700200 16033260570 15112062554
-484433888 1162051712 1886216568 1764255084
e3202020 45438080 706d6178 6928656c
0000200 n t sp b ) nl sp sp sp sp c nul nul { sp a
n t b ) \n 343 200 200 { a
14210072156 04010005051 20070620040 14110075600
1646294126 538970665 -2132598752 1629518720
6220746e 20200a29 80e32020 61207b80
0000220 sp = sp b ; } nl nl sp sp sp sp sp sp / /
= b ; } \n \n / /
14210036440 01202476473 04010020040 05713620040
1646279968 168459579 538976288 791617568
62203d20 0a0a7d3b 20202020 2f2f2020
0000240 d 8 nul h bs , e bel = f nak 0 nl sp sp sp
344 270 200 350 210 254 345 207 275 346 225 260 \n
35040134344 20771326210 26045363275 04010020012
-394217244 -2014991224 -1332353347 538976266
e880b8e4 87e5ac88 b095e6bd 2020200a
0000260 sp c nul nul v o i d sp S h o w sp ( )
343 200 200 v o i d S h o w ( )
20040161440 14432267566 15732051440 05112020167
-2139036896 1684631414 1869108000 690495607
8080e320 64696f76 6f685320 29282077
0000300 nl sp sp sp sp c nul nul { nl sp sp sp sp sp sp
\n 343 200 200 { \n
04010020012 20040161440 04010005173 04010020040
538976266 -2139036896 538970747 538976288
2020200a 8080e320 20200a7b 20202020
0000320 sp sp c o u t < < a < < e n d l ;
c o u t < < a < < e n d l ;
15730620040 07417072165 14517036141 07333062156
1868767264 1010594933 1698446433 996959342
6f632020 3c3c7475 653c3c61 3b6c646e
0000340 nl sp sp sp sp sp sp } nl } ; nl i n t sp
\n } \n } ; \n i n t
04010020012 17510020040 01216676412 04035067151
538976266 2099257376 171670794 544501353
2020200a 7d202020 0a3b7d0a 20746e69
0000360 m a i n ( ) nl { nl sp sp sp sp c nul nul
m a i n ( ) \n { \n 343 200 200
15632260555 17302424450 04010020012 20040161440
1852399981 2064263464 538976266 -2139036896
6e69616d 7b0a2928 2020200a 8080e320
0000400 C E x a m p l e sp A ( 1 0 0 ) ;
C E x a m p l e A ( 1 0 0 ) ;
14136042503 14533070155 06112040440 07312230060
1635272003 1701605485 824721696 992555056
61784543 656c706d 31284120 3b293030
0000420 nl sp sp sp sp c nul nul C E x a m p l e
\n 343 200 200 C E x a m p l e
04010020012 20040161440 14136042503 14533070155
538976266 -2139036896 1635272003 1701605485
2020200a 8080e320 61784543 656c706d
0000440 sp B sp = sp A ; sp / / f 3 ( f eot si
B = A ; / / 346 263 250 346 204 217
07510041040 04016640440 26371427457 21741163250
1025524256 540754208 -1276760273 -1887115608
3d204220 203b4120 b3e62f2f 8f84e6a8
0000460 h ? em i bel ff g sub eot e / 9 h 1 ! e
350 277 231 351 207 214 347 232 204 345 257 271 350 261 241 345
35146337750 23271706207 27153762604 34550330750
-375799832 -1696101241 -1179654780 -442387992
e999bfe8 9ae78c87 b9afe584 e5a1b1e8
0000500 bs gs e ' vt e ff syn h & soh h 0 etx g dc4
210 235 345 247 213 345 214 226 350 246 201 350 260 203 347 224
24771316610 22643162613 35040323350 22471701660
-1478124152 -1769151093 -394156312 -1796766800
a7e59d88 968ce58b e881a6e8 94e783b0
0000520 ( f vt 7 h 4 gs f rs eot i nul sp e bel =
250 346 213 267 350 264 235 346 236 204 351 200 240 345 207 275
26742763250 34647332350 20072302236 27541762640
-1215568216 -425872152 -2132179810 -1115167328
b78be6a8 e69db4e8 80e9849e bd87e5a0
0000540 f nak 0 o < ff h nul ff i gs rs h 5 vt e
346 225 260 357 274 214 350 200 214 351 235 236 350 265 213 345
35754112746 20072106274 23647364614 34542732750
-273639962 -2132243268 -1633818228 -443828760
efb095e6 80e88cbc 9e9de98c e58bb5e8
0000560 nul < nl sp sp sp sp c nul nul B . S h o w
200 274 \n 343 200 200 B . S h o w
04002536200 34310020040 05620500200 16733664123
537574528 -484433888 776110208 2003789907
200abc80 e3202020 2e428080 776f6853
0000600 sp ( ) ; nl sp sp sp sp c nul nul r e t u
( ) ; \n 343 200 200 r e t u
07312224040 04010020012 20040161440 16535062562
992552992 538976266 -2139036896 1970562418
3b292820 2020200a 8080e320 75746572
0000620 r n sp 0 ; nl } nl
r n 0 ; \n } \n
06010067162 01237205073
807431794 175966779
30206e72 0a7d0a3b
0000630
[root@bogon C++]#