From 57627e0b752d3a345d75a1834bbd83e4a5a0bffe Mon Sep 17 00:00:00 2001 From: light-city <455954986@qq.com> Date: Sun, 14 Jul 2019 16:52:20 +0800 Subject: [PATCH] update dir --- README.md | 17 + const/README.md | 405 ++++++++++++++++++ const/class_const/c++11_example/apple.cpp | 15 + const/class_const/c++11_example/main | Bin 0 -> 9656 bytes const/class_const/c++11_example/main.cpp | 31 ++ const/class_const/first_example/apple.cpp | 13 + const/class_const/first_example/main.cpp | 32 ++ const/class_const/overload_example/apple.cpp | 13 + const/class_const/overload_example/main | Bin 0 -> 9656 bytes const/class_const/overload_example/main.cpp | 32 ++ const/class_const/static_example/apple.cpp | 14 + const/class_const/static_example/main | Bin 0 -> 9704 bytes const/class_const/static_example/main.cpp | 34 ++ const/const_function.cpp | 11 + const/const_num.cpp | 8 + const/extern_const/const_file1.cpp | 1 + const/extern_const/const_file2.cpp | 11 + const/extern_const/file1.cpp | 1 + const/extern_const/file2.cpp | 11 + .../funciton_const/condition1/condition1.cpp | 8 + .../funciton_const/condition1/condition2.cpp | 9 + .../funciton_const/condition1/condition3.cpp | 12 + const/funciton_const/condition2/condition1 | Bin 0 -> 9232 bytes .../funciton_const/condition2/condition1.cpp | 10 + .../funciton_const/condition2/condition2.cpp | 8 + const/funciton_const/condition2/condition3 | Bin 0 -> 9232 bytes .../funciton_const/condition2/condition3.cpp | 8 + const/funciton_const/condition3/condition1 | Bin 0 -> 9232 bytes .../funciton_const/condition3/condition1.cpp | 10 + img/wechat.jpg | Bin 0 -> 28028 bytes 30 files changed, 714 insertions(+) create mode 100644 README.md create mode 100644 const/README.md create mode 100644 const/class_const/c++11_example/apple.cpp create mode 100755 const/class_const/c++11_example/main create mode 100644 const/class_const/c++11_example/main.cpp create mode 100644 const/class_const/first_example/apple.cpp create mode 100644 const/class_const/first_example/main.cpp create mode 100644 const/class_const/overload_example/apple.cpp create mode 100755 const/class_const/overload_example/main create mode 100644 const/class_const/overload_example/main.cpp create mode 100644 const/class_const/static_example/apple.cpp create mode 100755 const/class_const/static_example/main create mode 100644 const/class_const/static_example/main.cpp create mode 100644 const/const_function.cpp create mode 100644 const/const_num.cpp create mode 100644 const/extern_const/const_file1.cpp create mode 100644 const/extern_const/const_file2.cpp create mode 100644 const/extern_const/file1.cpp create mode 100644 const/extern_const/file2.cpp create mode 100644 const/funciton_const/condition1/condition1.cpp create mode 100644 const/funciton_const/condition1/condition2.cpp create mode 100644 const/funciton_const/condition1/condition3.cpp create mode 100755 const/funciton_const/condition2/condition1 create mode 100644 const/funciton_const/condition2/condition1.cpp create mode 100644 const/funciton_const/condition2/condition2.cpp create mode 100755 const/funciton_const/condition2/condition3 create mode 100644 const/funciton_const/condition2/condition3.cpp create mode 100755 const/funciton_const/condition3/condition1 create mode 100644 const/funciton_const/condition3/condition1.cpp create mode 100755 img/wechat.jpg diff --git a/README.md b/README.md new file mode 100644 index 0000000..dd2704d --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# C++那些事 + +## 项目概要 + +学习C++内容,包括理论、实践、项目等 + +目前更新: +- [x] [const那些事](./const) + + + +## 关于作者: + +个人公众号: + +![](./img/wechat.jpg) + diff --git a/const/README.md b/const/README.md new file mode 100644 index 0000000..6fd2735 --- /dev/null +++ b/const/README.md @@ -0,0 +1,405 @@ +## 关于作者 + +微信公众号: + +![](../img/wechat.jpg) + +## 1.const含义 + +常类型是指使用类型修饰符**const**说明的类型,常类型的变量或对象的值是不能被更新的。 + +## 2.const作用 + +(1)可以定义常量 + +```c++ +const int a=100; +``` + +(2)类型检查 + +const常量与#define宏定义常量的区别:const常量具有类型,编译器可以进行安全检查;#define宏定义没有数据类型,只是简单的字符串替换,不能进行安全检查。 + +(3)防止修改,起保护作用,增加程序健壮性 + +```c++ +void f(const int i){ + i++; //error! +} +``` + +(4)可以节省空间,避免不必要的内存分配 + +const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是像#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。 + +## 3.const对象默认为文件局部变量 + +

注意:非const变量默认为extern。要使const变量能够在其他文件中访问,必须在文件中显式地指定它为extern。

+ +> 未被const修饰的变量在不同文件的访问 + +```c++ +// file1.cpp +int ext +// file2.cpp +#include +/** + * by 光城 + * compile: g++ -o file file2.cpp file1.cpp + * execute: ./file + */ +extern int ext; +int main(){ + std::cout<<(ext+10)< const常量在不同文件的访问 + +```c++ +//extern_file1.cpp +extern const int ext=12; +//extern_file2.cpp +#include +/** + * by 光城 + * compile: g++ -o file const_file2.cpp const_file1.cpp + * execute: ./file + */ +extern const int ext; +int main(){ + std::cout<小结:可以发现未被const修饰的变量不需要extern显示声明!而const常量需要显示声明extern,并且需要做初始化!因为常量在定义后就不能被修改,所以定义时必须初始化。

+ +## 4.定义常量 + +```c++ +const int b = 10; +b = 0; // error: assignment of read-only variable ‘b’ +const string s = "helloworld"; +const int i,j=0 // error: uninitialized const ‘i’ +``` + +上述有两个错误,第一:b为常量,不可更改!第二:i为常量,必须进行初始化!(因为常量在定义后就不能被修改,所以定义时必须初始化。) + +## 5.指针与const + +与指针相关的const有四种: + +```c++ +const char * a; //指向const对象的指针或者说指向常量的指针。 +char const * a; //同上 +char * const a; //指向类型对象的const指针。或者说常指针、const指针。 +const char * const a; //指向const对象的const指针。 +``` + +小结:如果*const*位于`*`的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于`*`的右侧,*const*就是修饰指针本身,即指针本身是常量。 + +具体使用如下: + +(1)指向常量的指针 + +```c++ +const int *ptr; +*ptr = 10; //error +``` + +ptr是一个指向int类型const对象的指针,const定义的是int类型,也就是ptr所指向的对象类型,而不是ptr本身,所以ptr可以不用赋初始值。但是不能通过ptr去修改所指对象的值。 + +除此之外,也不能使用void`*`指针保存const对象的地址,必须使用const void`*`类型的指针保存const对象的地址。 + +```c++ +const int p = 10; +const void * vp = &p; +void *vp = &p; //error +``` + +另外一个重点是:**允许把非const对象的地址赋给指向const对象的指针**。 + +将非const对象的地址赋给const对象的指针: + +```c++ +const int *ptr; +int val = 3; +ptr = &val; //ok +``` + +我们不能通过ptr指针来修改val的值,即使它指向的是非const对象! + +我们不能使用指向const对象的指针修改基础对象,然而如果该指针指向了非const对象,可用其他方式修改其所指的对象。可以修改const指针所指向的值的,但是不能通过const对象指针来进行而已!如下修改: + +```c++ +int *ptr1 = &val; +*ptr1=4; +cout<<*ptr<小结:对于指向常量的指针,不能通过指针来修改对象的值。
也不能使用void`*`指针保存const对象的地址,必须使用const void`*`类型的指针保存const对象的地址。
允许把非const对象的地址赋值给const对象的指针,如果要修改指针所指向的对象值,必须通过其他方式修改,不能直接通过当前指针直接修改。

+ +(2)常指针 + +const指针必须进行初始化,且const指针的值不能修改。 + +```c++ +#include +using namespace std; +int main(){ + + int num=0; + int * const ptr=# //const指针必须初始化!且const指针的值不能修改 + int * t = # + *t = 1; + cout<<*ptr< int *错误! + +```c++ +#include +using namespace std; +int main(){ + const int num=0; + int * const ptr=# //error! const int* -> int* + cout<<*ptr< cost修饰函数返回值 + +这个跟const修饰普通变量以及指针的含义基本相同: + +(1)const int + +```c++ +const int func1(); +``` + +这个本身无意义,因为参数返回本身就是赋值给其他的变量! + +(2)const int* + +```c++ +const int* func2(); +``` + +指针指向的内容不变。 + +(3)int *const + +```c++ +int *const func2(); +``` + +指针本身不可变。 + +> const修饰函数参数 + +(1)传递过来的参数及指针本身在函数内不可变,无意义! + +```c++ +void func(const int var); // 传递过来的参数不可变 +void func(int *const var); // 指针本身不可变 +``` + +表明参数在函数体内不能被修改,但此处没有任何意义,var本身就是形参,在函数内不会改变。包括传入的形参是指针也是一样。 + +输入参数采用“值传递”,由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const 修饰。 + +(2)参数指针所指内容为常量不可变 + +```c++ +void StringCopy(char *dst, const char *src); +``` + +其中src 是输入参数,dst 是输出参数。给src加上const修饰后,如果函数体内的语句试图改动src的内容,编译器将指出错误。这就是加了const的作用之一。 + +(3)参数为引用,为了增加效率同时防止修改。 + +```c++ +void func(const A &a) +``` + +对于非内部数据类型的参数而言,象void func(A a) 这样声明的函数注定效率比较底。因为函数体内将产生A 类型 + +的临时对象用于复制参数a,而临时对象的构造、复制、析构过程都将消耗时间。 + +为了提高效率,可以将函数声明改为void func(A &a),因为“引用传递”仅借用一下参数的别名而已,不需要产生临 + +时对象。但是函数void func(A &a) 存在一个缺点: + +“引用传递”有可能改变参数a,这是我们不期望的。解决这个问题很容易,加const修饰即可,因此函数最终成为 + +void func(const A &a)。 + +以此类推,是否应将void func(int x) 改写为void func(const int &x),以便提高效率?完全没有必要,因为内部数 + +据类型的参数不存在构造、析构的过程,而复制也非常快,“值传递”和“引用传递”的效率几乎相当。 + +

小结:对于非内部数据类型的输入参数,应该将“值传递”的方式改为“const 引用传递”,目的是提高效率。例如将void func(A a) 改为void func(const A &a)。
对于内部数据类型的输入参数,不要将“值传递”的方式改为“const 引用传递”。否则既达不到提高效率的目的,又降低了函数的可理解性。例如void func(int x) 不应该改为void func(const int &x)。

+ +以上解决了两个面试问题: + +(1)如果函数需要传入一个指针,是否需要为该指针加上const,把const加在指针不同的位置有什么区别; + +(2)如果写的函数需要传入的参数是一个复杂类型的实例,传入值参数或者引用参数有什么区别,什么时候需要为传入的引用参数加上const。 + +## 7.类中使用const + +在一个类中,任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改 + +数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。使用const关 + +字进行说明的成员函数,称为常成员函数。只有常成员函数才有资格操作常量或常对象,没有使用const关键字 + +明的成员函数不能用来操作常对象。 + + + +对于类中的const成员变量必须通过初始化列表进行初始化,如下所示: + +```c++ +class Apple +{ +private: + int people[100]; +public: + Apple(int i); + const int apple_number; +}; + +Apple::Apple(int i):apple_number(i) +{ + +} +``` + +const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数. + +例如: + +```c++ +//apple.cpp +class Apple +{ +private: + int people[100]; +public: + Apple(int i); + const int apple_number; + void take(int num) const; + int add(int num); + int add(int num) const; + int getCount() const; + +}; +//main.cpp +#include +#include"apple.cpp" +using namespace std; + +Apple::Apple(int i):apple_number(i) +{ + +} +int Apple::add(int num){ + take(num); +} +int Apple::add(int num) const{ + take(num); +} +void Apple::take(int num) const +{ + cout<<"take func "<y#5EMb>RG3x6afQ;A8TGF1!5tRpXshBZ?_KY%?aB47xqAd&1D%OW+`P5kYzKP3}?0_t42txs5lvE{6Y8mKJW9rd++U? zGbY=Y-1~jLpYM<7_w&BbxBS@Oy4G&92`0O^OOWKO@k+>e3NdlL6cyGerVFoFBCZqD zfK=h=G;H(8~r*|+zz`J63Jd- zqD4LnoNS5O&goGqx6PCyxK|dKCk$9HXTKl9kJ|Zd$*BxCtNO}~OO0wjbJbn3A`$Oy zs9%wYE>Fah*&WMwG&U@6sCQ>l?v=9N6rXI@ZS0ga@i@95QJd%EM?+2e(EQrRtKW0< zUj4U=p-(TJd-IDIQa6%r7JfW$SdqeJGg?hJP2-JUUz%R)Kij(C(5z;NCFvFfm{&qW zkz6J4C1vnG11}Y4OPTnsW$;yH;-4!Me^VLzJIci0TPDua3cpzGMX5k>6scdYS@7!- zf38?0_Bcb**a=w@<~^fFBe&m9bKM{`t+zjw)G~TFt!tXl)^FD~$9m%#J(g}xgfp2~ zMrgr~4O%poR&d9L=0qwP>j-xzVur4?=7EjvdSg75(YnK#SbZ=V*IVlR+l2-^mB{$p z)^2W3wQGI=?RtGI8BGKu?Rs5Zq%WM-^mI6`XMz#Ge>1REh!Brxsf?bEh5LgYT8BsT zw>O}*Q|o9p>S)&!nc%kz7wJH-)mqy<5u+)QR94ToGA=M)5gsaxQe>MJ>D#9DgyRW} zU1UdC3+u5Rad>ECsRpt?98ZdMt-+>dZKbavkQ5*1HG4`SCcmPNmqUuBGqgQJ0H{o>dFa-uL)C3Mx{jSC(0{cevs%dUA4@j%KPN2qoOjHBkM-v_?q(5*mDz)~>SId%=U{5e*!u zTt=-6R}bVsQ6Yw(Ko?cTY@CV)|}4_S9UA z%O_~^>wOrZVG@tgOKI#2U}`vq$@UnH!`QFU0jz-`-+jJ&eYr_rr>~>+;Ii*kxUiTG zE_Z{s2XmK$xwEaeo|Aj^_}3L<>kuli?_=Fn_jg`@t+@|dbC+8XVRHUI0)r=Pfi)jx zKctQPqb}crzAoQZpLSxXuwFmM{+997R;Tk-=;3WKS5Gz>!LnOiaYq6Tq_e__>S#Ph zz#juYf?*g1KM78U;TX6Jd=|#d3%(va1fB%n1HKr2JPf`Cd<2~K?*#Jgd59$X4wnoW7kssQWfDP*mDph^5ezecP9)lWZN%wT^}B=gfS#W{9I05naKmD9Hb5x)x?u|Z!Dte1`}LAwzTZe zXq8uLu!W_}^QdLP+vPanef5)q%*?Xo;|Ja+-7_@kEi z`=$NVd3gzVseb)R+B-#ynqRK>jKmiS`hFu~oX%CMciRjv!N@WiR09LT`8~wv^fKV3 z>ZN$4@D)(lkjWUD?NyNtcBjOrjz4Kj#R*ac$b4|VjU=K6Wt^$&CoS!-nzC*O70&NJ zBZ?5u$~aTk?F_t-TzG3**WvT9pU2K7enjF9LANs^evdd1XCB6r_w{X3E5s?-yHwfC z&X&Q)Rs08W-y`Dr8j<+a^WjU0OVgr<3k@sP{=3WITNG~1M?C`ERTS9}o+}gQpTOrL zi^1nrrSkoxOq?2wo3q6DF91H*eyyPEshKE2St>u)sO;$yV6 z>|bmAu(Vf3CbnC}nWpANeuG2*2*#h{98&v^T@I9q^NNbosN&qL99~!UbQv|19Ro=1 ze@@viRmz3HY22*szecVHhp@JDiHbAdQtt|dQ+|QyRrwTRlWb3k_gy5dXY_1Oj~i(> zZGH1*tu@%*fed6J(WvSDT7*)KNI`1Rl-8R_b%zsLR8OTdS~$ByL{j|&iI^UXy1&1A zO?_!2ttXz0YvFV{yi{N zBC&_#nV1$yC6SHHMkrI*uD3R7T0BMW5bNtS$^z=hSP~KsC*r#xA;}s}Mv+G~{7Cl1 z<3d~4x~a+63YToR7Sxc@TGS^)+Lo-z$V<~aC^hn_ltneCUM-rbIbq5>TcUqcN*fdU9g@e^ z3N~R8MB_;amqzo0&CGsO6$W?qU^hobEfGq z7N6Fg$>d`dXR8aNgq@OKWp!#k%o%x0h57kg6^=%w`FG9NmkZq38`GOpxKYrb2VyiH zg%+wxWkOxJGduhBa5uP~Hh3SG;z|6)VnDc)DLv-)H3gUJ;a(;6CbRDDY#e{;ibsW; zq`q*bPq?EylZa<V$I=;W%_2dAE*(pR$w8F{61s59A$Ozb?oC0&p8@cs;|4}4 z*$a29PaQCQQ3PSha5YXE!-LBYMPP<%!u|0G+K|#IJP;ZZH|AEjapv{o98;(3cW3mS ziX%S%-NE-S{(COp=eY*5H50vW=njq7v7`>WS8>UN%V7B@UJpf72g&Tu_c>h!Tv}vJ z-+IN=0`W5L++6=5yH^?;ODIunL}4a=?9cbZHxwW<`p{FJg8E*A9}&JF zCEbfBUTt}QzDIggLphIOSQoydS>B2QizXlVF+erK8HB zP5D#%$%fmnU_ti?YAXBl{neuqGv&sQ`~Rr&Z&Cq6)4Z}2QvUBMoSH*ETtE9i35>>7 zndk4rjkG90oL@4esq>$M!tBrY=8*C~%#MmXE&LhCW`Du=Db-MJFNd+pKezbv_qtOV z-b9PTL|i{Zzd*rUKi}8uX;Ffv8!Z1+%PKFwf)e@j{PB0PSNU7(v-VM4Q&v}9oRsUb8aVD~k-x=uW+n0xl?^*o+7_9BL`k#gG9Fsri9ct7EwbkA# zzXxAxBG=FNd*`?GKM!A8yX?<-IR1YoqpJVBzPWzx*C9*&obQ;RPJ!6okP0&6pF&}7 ze?BjwDhRQo;_SzK!s5^O){ye&c5)c@WBCdSgmM4(sQc1@a$KnT&-N}ZC|&_QnRqNX z`>(d(9FF;1=(%pQ=>_%Tn#G1nX%S`Jym!q0FLVD@hv^)y$B+BZ=NIkIQuQBI2KAN= HW3B%`1-sCI literal 0 HcmV?d00001 diff --git a/const/class_const/c++11_example/main.cpp b/const/class_const/c++11_example/main.cpp new file mode 100644 index 0000000..a72adb8 --- /dev/null +++ b/const/class_const/c++11_example/main.cpp @@ -0,0 +1,31 @@ +#include +#include"apple.cpp" +using namespace std; +Apple::Apple(int i) +{ + +} +int Apple::add(int num){ + take(num); +} +int Apple::add(int num) const{ + take(num); +} +void Apple::take(int num) const +{ + cout<<"take func "< +#include"apple.cpp" +using namespace std; + +Apple::Apple(int i):apple_number(i) +{ + +} +int Apple::add(int num){ + take(num); +} +int Apple::add(int num) const{ + take(num); +} +void Apple::take(int num) const +{ + cout<<"take func "<hdOo2wCZSQY_SiA>DUm81?}{qGu3L#bf^PNqG(Ymld(wp{pX&4bN6Of zop#!v+54aW`yc0h?md6_MzDFM)8PRNpxHRng>+&M-yhLU<%V ze$>`cr5~NqDRJgoR6F)l!z6j+lVI|j>yjdPrz|i(p&G`V`$v7FU%QIi?({<<*-uO~ z$>%sHTcVazMpXJuGv)Saepz6iFk!)*{ceRHwez!*TN$>h`bv#UrD{KO)m?EzBHmS3 zdqW~xorov1TdKFz*HzcmdNV2S64`HxPqwSpcF3A|96gYz&9m{Np(g$6H?K^)ZhP*o z>3@0f@sq1h-RLTN?*i$j zS=ri_YSV)N+Kk#*GMWfQ+Kif-NKZJe8|iS|$b=%nU@Neth!BtHsf>}1g?mHodb>{# zw$-7v6YFR+>u56)nb2no7imYZWqQjk5wj_gRMyD1GA=M)5gsaxQe=}J>Di=rhvNy1 zU1UpG4;!&9ad_xtsRpt)98Zc>&7p=yeTla=Us~c_W|r@`LthFUWNuF<_7d$FlFIQk z|B>E-at-E=*1HeC+3`5GPPy2muZMj$Wy~!-CVf!=&|}snqsV{G!q$v|U3+#qiId(fVJkJi-QlT4F4azM)8B$Cj%V5ScU*v?yPorc!lOTs=a#An3In-jib$6Al4r- z>)-L^m(d@Qt?Gc|a1sq$f3)IxK#mV(O^4hrYS;>qt$63#@XH5#pB%2zU8ylpfnW_ju33qD^RR18Y5z;@21|Ougt88|j@nLyHwLRsF zsC8N{I9fBL?cMdt1q7vqL{9VIq%ab{4>5PtY)sr*`R^dGFV#WDXQ;J%cXfgd(n2Kc zw-zj_uwh{4`0nW#jcQA0%l2SzY(&uU4&}CA$Yn?Sw_k8%ui3eMbZiXMcjcjnt1vF_ zp~=7O!3YhKc!*v~!yf@t!!byQ#k9BD z3*HvWoe$++YrgiB+^dH_E*oBjP};6{4NuKqdHpr#-fqsFZ$gBz*~hj1BMxo(JK48s zBY$Om;O@Zsz=nW+WMF)~eu(`o*l*#_mhtv@-4nzX$wl;FqGG-vjRee*ruJejNNb_(DuB zeMb>FwzUe!7Pn*m^vRV2j>&Gq>D$?ddaok`MaAufSO`7YxBP2tY(Lq$+$&vkSI?Yw zZ{-fLV%|;HEnRpO!DQ2f-yaZHp7Q~hd$+T3#-tD`R(e_w)ZeSY1?xAA>uDT@K0*Hk z^e;kxv(r{aeiV zO~9I<{}%Ky(l@x=4>=oLa~~`Vx;%T!8(fPYsL))#-IFv|egEV&E`QopA8`2suEh;5 z5A0yy;Hs4K_5k7>Kpaft|D8@$`emKZOf~tClDQ#hnj|}?ZwVrP7uI8o67jpY7H1sM zW%5b)txj2*uVntNn5X1Q9M42FFGRG4i2iwTEJb{u(@!ja=kt}DGJgZSZZ~~n5lu0f;QFzh zWq(do_@xHhSIS)PStSoDy>kDbGrq^#E848)b+_W*QT!>zpI7{-;;$=yTJiIW+vBck zY`oF4xT7nZG_sy$-deA(x-KiFny=T?d409snwo1(g=dMcrp{OATW*hGm&@>FS?~1Q zVa%~Jf8Vw$>08+-YG0mTZ-w?1g4bCgK1uL;EW{^^V)Iyr)y?x?Xg@{pIx57c=GR*x zK27kxE5xUZ&LZPpM!VCtzsau*U+SFaDU35y@IEfY-NLW-cOhOSI6qN{&k{pL?Jvon z3x)Qx1)m3n_#8o>ads*bpUdZCthzGnR=%ec;@FL9zZc?{iO!<<`2Dxgo=>xJl#ZQp z@jkv!3W?512TmV*`{{giV*LHKd7;RJ@37%sh1<_*dLKD(PanYd5)q%*ZL&OZJhuU- z_$O@fcT4+;^YSF{V*UEDw4W#FJB^6z{T0d-f74Vy!N?|>^e!0T{J!Dycn%zk#V<9U z3!rcyV=*wpuOgeQTH+JOnY6{?FQ*ES;jph;%G)^T)V8gME@^+sg!P$GIKSs8D$#Bk zXX5(&2nW6gZ%6xjdkFTkOxJ?vQxbOxx`h$(`{E)BvoM~#f3K5TA)bf5N0qJYHzn{l zRs6eguOs65Iw0|h=fFD>m!<^|w`@-VB!wGF;30+E^G-?No{3?^{Uzf35qK4{6?`t0 zE8oABh%*Y@U1a<#@Ig@JyiCwF)Jj!^7s-PyR`zsRvC=Z&G%s{rCW^_Y5JBK>#IeV} zRoW{f3%h_a^{YwEJNK(s#h;|+OMZjHHi>zm`1{m;thdPfE|NAfMz*`# zi?o}*y0KMn4z;x-138{()Qw&}La9ciAoXZU-6A(I+TMv*KL7YwJWE@&CNmFBmOoHo|6_7`iIt+XCy+OiJ&;s-kSWnPaBuFxR2pmC58|6=tW$ zM+rNF7aX$V=6qN)@U{x`^S3k{jY{+XG(TS|aQ()Z(U`&wg8m#3qw%n`aEaMMa|x*? z$aK2!X14Yk;Vy6^ZSo#2#gq7ZMW65{Q%1}iXb4ps;f+e#n9O>+vT^*OD;^bIl6u0K z9^s8{O(LGjjkKxR97|`ghYJK9x^yfNCI?mOOBli{C%}uMcVh}7{s@349X2pZ$v$~w zJ?ePri6RI~rmK0*m>yidCjv866Yh;i(1w&j;epTqc`?(%ixaOGr~uQh?0pLr-}M>U$-AMEJ6lbQ_*{ zwdMW!9_dpJL+6Ea)CVO=W++zxq^SrquXx|L;@&4Ju&gB)=?mD*rbWPR$`7uAluM1V-bk%=7o* zdRi19&M%qL#QD!bVfE*GbEop(&yI?_ZTwNlR)4|wDb-MJFNd+qkK6qDJKn7fucF0a zA+DdHAEIEbpYQ9nv?xJSOqPGDWtEqoL5ci%{`mXZulz5`Tbc#C|8q8fzDKny|HP;G zAF}y#o?uA%|A`uBA^Z5f3>|&@@-XrJi~k>keZ1`cufcbw#h>#ImFk1qZf}?W4qs{_ z*U$HR_hbN$?}eYW~J-!V#^0j< zK_@#Z&VI~CZT@_p?Nt8UP7cF +#include"apple.cpp" +using namespace std; +const int Apple::apple_number=10; +Apple::Apple(int i) +{ + +} +int Apple::add(int num){ + take(num); +} +int Apple::add(int num) const{ + take(num); +} +void Apple::take(int num) const +{ + cout<<"take func "<K$*`{=mSxgl^u}EAa zs(@7D=aUkmW{v5Xa?P|_>6L?4;MZJc0?lPUSz&sO38MwGa1V)6dlSW{swRDArpYoD z!Yu)^qrQ$Q`Pj^m#F^fw`f-RlCW~7>2`0OFPRW9XWQFOl>KIcVAB~NEUCM7)nGYQC zJ|dz`J|`&YQt3EnM5%5}mn^7HR+uJCSTJR~FTsxb`EiR&DQ-~hm5NKX>OWI8Tybk6 z-qX}@Ya&{gh$pk#>$W#H)ipJEGAYkeId1Y#x~tc9%a%BfZgAA+IrveiN&e%P@2lRl z`SSLf&fneOdf?cbXAb>y9m!_k$Mc32DI5;7*M!qFe)@xpQ)>gSwa+~`qZMq?aw8nf zE+QdM?jrc268KBNi}|^$g#Y#u__7lI&z11MzJ&gY68?9W@N+=n7pC}7n<#NqXrAftLmIo-v}4TW+DbZW6k_xj&WEGe$UV=(^C?Y|}TyHpeqYEZv$2 zXEL#j(1TrT^=K@u;I6f;iBvMy74AvIOj&Ws-RnAy=6EWj_k=UChF~&owABZ;2_1MU zkqLCH+R&Nm)B^xIjfPk2Tc01S5gK24KtJAs*3F86zDF_XoT5 zF0UTwY(j4*x6x|0(P<hYC@OY|$fqTlC&= zJb~Cnwukkw5!)Vzg-)6(kp1C!Qmk$dwzTR?Jq`KVQct5wpDS&7FpG=%xcW(#phcB_Ep= zg48?{)zKh%UMF-mtD{ol^VIs80#3P*xZ8sB8AgIy3r@bccrCc~oNKn=bS7}|S#Um+ zNv2uwX{-#|VZqhWE2Vc@a5{ImXanb~wSASptab}+&oQHNxccG`XXPCI5BeDP*IEB)^k* z3f1VKow{$AoK{G(eX-$OiwWHcoCzfWJJ~46!3@`T1TGS@Qkp~cZPp^O z@r2p_t}mR%ctp0Q8-^oEbZq0v%4Y#N-j^*MbvdbHD@C^Qoo~S|@9aG?7=LBs=uX&B zUCZ4+mdjoo+;~EA1Ls`|+1Gth+ZPziy{_d>jnrZkgQrgnewYqTP7$4m7zA_yVOtu0XdL$pRn{vwlzDJ>*2S^y)35&J!`xszsR;?~Ar1hcR5_A0kv@fxf6r(oDM zb%A`nM1$GCCj>G?>y)scSg@$VP6IQ;zpr~Nsx6x%yNj)(!Rf?!bN64)Wyc2YzwF4~ zxcmOG@o~)Vbw|HhgRs4f5&fzU0URRsD7~{r-T)+t@*`9m5J$I=M z9>(XK)do&DwB_$)-=>ZJ<&FM({2Tq7{Q8N(iS_(G_P_L}jsiM=DNsguOU&JyO-9@} z2N#yF=mSRQ$@zbek3R$YIGUy%asaV73wj9jGU)T5*I-B^pq~f50YSV6bPeczpjTs{ zkArrB{u(p^dKUC7=weJheP>Z|?A#z6+g*-@Gp1AzI;OY?r*CT)+P#?+R4J}6#A3)v z-;4epB3-9zm2=*jS<}B#y-TcIu;S)ri$6m!>9pbZH2liA~kv{?X6Oez=YQJN`{(0cfLB7~3*C*s}0zV1)i&lBrDXBpHuR#3L zh<7RfiyYF^?22XwcO{T!T z)LY-=ZSpR+`zgkk;|sI7%r{9?j@j)hikAzcC|;3YcUEWRScSaa3h^qz>#`7^B8tst zIaWEZgF^kOg4a_aJ}tlQ3i0WJ_g^7CLxhUNznpfdZJ(1}IlkCA-&5#kmf-zdh`U5c z?ejvsCZDe;#Al1)qWV|m&xb<&IfBoHLVT{E&pCT37gy)=GFDkRb}ipm3UTa8weJh@ z`65&lpSTAX>hq~Kfzt6)A>PA>NMWJ#(t%UR-hVnL%MgE`ZC=PT;k#_ON8$GKn%+AO z+}8*3VMK+`?M_*r9M7G=$^Wp;|6Zv-d0w6bUTj=XOZ^3cKFFwWyT3u5{693!M=-LA zW_cHcaDMObxjYw!#r&6w=OPFk$Xpzr=~JFfQYZ1raVBXo|I4WXWI8y%MjRE&-#F;> zwylRAsejd^^_fvPzwb;hLhO}(Ca=$b;T&}1EoonGk3xSo8(Zj85_bx^jZxwE#uZd% zBc8l}Zu*4^y1Mf&&sunz4vOfioWNs~i2NiD5 zKP7>?C%X|3mGJX2@ET+-_*|+`wtp(&XAHQjNc=1DVNg>xU(j{bT51R{k`Jp@`gAL? zmPX(-FLZ6D5|d9M0@BZXu~q4FKRbcD;NP(M(WM_{Y$2CXr}0MBdSE|aRqa-(d6eJa z&`n~#$p1mLPuW$jg#RBZKh4U|^~&Ig(x=O6K|u#-ypJjU#Y%WJaEh~iT-Pdndp~bc z_#9iiD-=%o2P*R09dxDaPm%XvByD7jY;UgzX*qpO>ju3&*x7{)~;}J^>0nYj9Aq3*~aA!#g+8lcrvbs)9LUIJ(e`mJ4A0f z+#l1U+5Y|=FtKntG>rmPO7nRlTer%@VSBT#$5W&OwxM39RG@*hB_Z)}BEAzGGOgic z6vD z^uW3{%G$~RaUCgnJ)kKCt!+cz{rXj_Is?d_`diuqWK=MoXdxgI!a{GmYn^{>uyrCI z>hsC8rb=L{q-P|Pm2rfNkIp9Fz3w)1bPaT;4q)`fv$#cDGV|0FcO^!Cm9nbVRIE)h z**oQ-ZQegD#f|**CrBpS8(5F^5RE7GY$k?KQ+vhJ=6W=2gv~TEM%A^pmFJk!phuF-g99tdm?7oC%pWSOE+i7nyHETkdhvtG(U69Fl;mPdiH^M!jM%tu(T#G01 z*Nv^hlS~;gkG~~YXM{H^ZgVp0>B+|NXR&xxc!=u@XZnOEx+4jHCNI0_4F=3lGk}ew=CYy!~$<^gWALQ2x7x?`iz^U%vlyJEUtZ^!}kc zH(uMa@O_T|zUo#u6TB`8NUBb<#2Iy$G0pY@n-ft+#}%=7(qSQ&IEd+I;waQ_u7=)OT+WqZEodQ~E) zRQ!1S4=Vc>%H$@`e+~kxJ>RcG z%Ki`=D(bS)Z-ckm3%+-$j>5jh+9l&7QyaT}rWq7Kf#9`waa66>Ix^ukWHoi89qB z`KMY|dHzSJkv-2Je`kl3{Z)BQvtqaZxy_#MTm1hV5+7lI)Mn55gkjbG@2PW^VvpZx z$mm;`!^HPA{(lelc-ie=gY7JfJ?AH?)d#j+-_HLTw$w##pYs5&k7@rFY-#PXJ?HKC z|D_D8@$>rT_IX?fZS8YjWQ+!d!ulpR!886h2(10j--}fPAvRQ$?U;_)?D^gsQucF7 z*fV?u74pU7-=*$JhO(ch#?Sh0t|(d#IjMMUINLYcaCXPE26ArOsygpllbgYcN@!zc l+q`$I_J>vfYgM4=9A1VW$BoY~+MmVRKcf_Uwhd=*|399R>MH;M literal 0 HcmV?d00001 diff --git a/const/class_const/static_example/main.cpp b/const/class_const/static_example/main.cpp new file mode 100644 index 0000000..74ca4f0 --- /dev/null +++ b/const/class_const/static_example/main.cpp @@ -0,0 +1,34 @@ +#include +#include"apple.cpp" +using namespace std; +const int Apple::apple_number=10; +int Apple::ap=666; +Apple::Apple(int i) +{ + +} +int Apple::add(int num){ + take(num); +} +int Apple::add(int num) const{ + take(num); +} +void Apple::take(int num) const +{ + cout<<"take func "< +using namespace std; + +void f(const int i){ + i=10; // error: assignment of read-only parameter ‘i’ + cout< +using namespace std; +int main(){ + const int b = 10; + b = 0; //error + const string s = "helloworld"; + const int i,j=0; +} diff --git a/const/extern_const/const_file1.cpp b/const/extern_const/const_file1.cpp new file mode 100644 index 0000000..7077ac9 --- /dev/null +++ b/const/extern_const/const_file1.cpp @@ -0,0 +1 @@ +extern const int ext=12; diff --git a/const/extern_const/const_file2.cpp b/const/extern_const/const_file2.cpp new file mode 100644 index 0000000..53729f4 --- /dev/null +++ b/const/extern_const/const_file2.cpp @@ -0,0 +1,11 @@ +#include +/** + * by 光城 + * compile: g++ -o file const_file2.cpp const_file1.cpp + * execute: ./file + */ +extern const int ext; +int main(){ + + std::cout< +/** + * by 光城 + * compile: g++ -o file file2.cpp file1.cpp + * execute: ./file + */ +extern int ext; +int main(){ + + std::cout<<(ext+10)< +using namespace std; + + +int main(){ + const int *ptr; + *ptr=10; //error +} diff --git a/const/funciton_const/condition1/condition2.cpp b/const/funciton_const/condition1/condition2.cpp new file mode 100644 index 0000000..9db7339 --- /dev/null +++ b/const/funciton_const/condition1/condition2.cpp @@ -0,0 +1,9 @@ +#include +using namespace std; + + +int main(){ + const int p = 10; + const void *vp = &p; + void *vp = &p; //error +} diff --git a/const/funciton_const/condition1/condition3.cpp b/const/funciton_const/condition1/condition3.cpp new file mode 100644 index 0000000..5809e5f --- /dev/null +++ b/const/funciton_const/condition1/condition3.cpp @@ -0,0 +1,12 @@ +#include +using namespace std; + +int main(){ + const int *ptr; + int val = 3; + ptr = &val; //ok + int *ptr1 = &val; + *ptr1=4; + cout<<*ptr<W)*@Dm zpx7$5h*dx;@e4`~ajV39QH5q+t?WGD75KHdEuh66lm+Ho9dm9WajLIKK~=PP=UPi- zE`(nKS`&12W5fzN`7B~AGPz7l1~|StNK~UY|5lxnuRmTAJ&dn*!N%V5jUi#V6Z6`}<@~JdS=y)W2H%XsAj5lDGM}!>70W zy61)8od3tRHQ#;m#pgdF9lc6^Z$kKl%Vo8i@OAjzeD%ZCJHoGZZk$@z2C*!?2XsRj z4Mp;o!MCn}{}y<;I5(q#B44W4GN#@3dLy`tWEvrDx4(#?*D8?>(w_Cx(rznaH#yquFdC zEA&Y3K0ThuD7bfDTQZ$W^hO7h2}@UAbMO8hv&Bef^}%R1(G*D;W_x4!sL+9@li6@r zM|V%UM-Kz&F`E*pcrp^}F&i6WBhid*W}=3fjl{y?ZeY6*!HDVUteHtfM);4`-ps7&W8Q5)=4;|8X0S8&j$&I;hZ8Q}?tbf+9yC8jpBF)bR{AvvYJ646* zh4(^OZj*tX!6WWc@5zM~LPgRMnYTQJEyyh*O24>%K;pDFsHH4re&4j0sx49Cb!r|| zK~f$e6`B6)~XcDrd z#&;w6R}O3W*R_c^7P@*P7iVVh1<)>@?UL-`$?Bk(8;0YDL+iKVWAH*61JS3|kAP_t zi(W1N=F!bBP$=qtP5(40mM+2gVHv;w9QArA!15W=_h}FPMFu!~&4U11enC4scaP?} zpuKX<+*pXVmZPoTD*De^^^e~b!T5+=O&=WRQfOHJh010?t`B5Q(>{DKwTXK~uJWC4 z!>IrV7mAn9sTzIx2S3i|7AGG3 z*p>U@Lk})4Euk+rO+Q(KaPMDTT6%E+fzOaQO*`k@RbZ2r_ZhOCrin85Q|dOli}w-w zYUp4nzZB{V^>&`#{&a;OgL}IE8StJ+{z@eOTIVg)(`xPPRnOc3MAII5*Yr33k>5vW z{_W2Em3Bl}s{NBTan7aP@lNh-n!xw#C|J zT~$89=}dMA@opspMdj^L5Awi&RchF`y9b!gW(fb z5H~|W$m=`lZo6)kdlWTW`Z!<>?Z4ZuKQ7hM|6$-m&~LQsyDUA${th(S0 zZuQnZ?g@MSrz={$J07dlybUK;Y2KEJs(s#I#@iC|HiW!8TD^YQ!M@d7Eyv|D+#f|8 z`+iCxKc!Dc;QwU=2JjsrYQ|@UD5zv9;6eKuk(1NegowZ0v#Wwq<}<{374Jrg(tT?{ zmNqMy&ncUfT#e5I5v_kBEOkkLyS9|3!jwBmtZ?V6tFUA~Q@rH1QfC~Yl)&x zak(d`GBNA)g#z|>B3{cgQY!9$w1*OX#$v*!`pfvG%AnM6yBn0cbz;2C`|t>FA-_{;=md~pP zV84N#ZTxYGV?L<$#ovP`P}qR+*0u+Ibcl^M^cDUSO_LDyD0{XoVqu3ye) z{ZiQvIP5O~r*Wq1HBmx7h4>wCAM#?(_^(TQWn^OqF>Yi(rPc+juB~9d1qTqC56(PY z960sYS+85Z7q6iEKT$?Lg_xD`%X}AN88d6!Oe`tN4R99kRTrufmGT|1VXKmdNVq#q~TO9Fqkv& z7Zf8d0wj$@vm+u9Kb}H7i<=osb2O33V%nDoI&_&tGD;4rG?p|)Kn_#@#lUbHBC^$Z z(kg{fS~fV47*XqTB#s~~S+3RswLG}|^%%@hO?1?Vp$%!1!ULh+2k=Hj09(ZWnDbKv3wW>x|?$Se4k0F2J`rH``M295%|+xmu0^9Oe%*i zRS~tHY`Faj7IaRfrm{cZk1i?ymBx?z|FH6JRRQ_F?o$ba8HH0g^5Oc~|8Zb6uFAY{ z-KmI!V38zKKJwA$DQNl^nVS$>uvsgudSw_Ag8@k z{xfW-iL{1^`2Oqrg#K^Aho&0)bAE^a|H38Je>EKo?csh+!Pj0t-=`O;Qy^!1S!Vto zZ0!Dpd$+3Kkc?7%upje9hdyv`wWB*0G^dIz(AF&wac9v#R|qY8~GM +using namespace std; +int main(){ + + int num=0; + int * const ptr=# //const指针必须初始化!且const指针的值不能修改 + int * t = # + *t = 1; + cout<<*ptr< +using namespace std; +int main(){ + + const int num=0; + int * const ptr=# //error! const int* -> int* + cout<<*ptr<0HwjQD(Fp-R%EYE*>sZFd6wuc2yyu?R zxxR5=0`UWBZ{_=*_jy0g$35rVbKdl8;qETC%O#lH;x0kbbY)ON)>DX{o200)HnC0w z#Wr!1r~p!qUr=g@TP5a8Dm3#dW#<7e!>`S40d4M}EHLNlm~#t>Q++EGR7Hz_c7r7{ z7s4+A@}sscT_;8GAz5HPq1y2zHB6FUJ_#njITO z$w6YGQ$ANX*%I}xnm8-+FBc0TLRg1V7Kfy#V6an2L@zKJdS=y)W2H%XsAj5<*uDi9KGYI z`dzh8yDnG%=FOLCXVRpjSIO^92%m7dtX31g5x<+?e`j5N_;UB=nT;I~OVXP_Hcy3(329_TaMjC58Xj%E`rk(6O}HieH09e6sK4fk~Q z_NDvuFn~U@C6S6JBe6cSsVO!V&FE$(YM9wbEFA6y){F>7OiyRcOd>iS>DT)k^>AM+ zTD!WA4yz7?jHPpCp*BOH-!bkodK){U$HtE6BT*xXF^CQOUs%z%eZmTEx8qee>X z?T)l}=(__gh0^Z89;mVlTSSz8sd`A_v^S`wEMqZr_*MY&fl9rl1X1Tc1>EHheuBgZJ2QwdGs(Q&+3BQ{^9B z=NH<;b7uMccK~Zs&sCkboR{}(f@*n3EuPief+&$ZM#_aN%b*?WNv5tZT#~YzWE#4K zIVu063NpRCg=eJvSCVN+7M_&yYb4W9EKE!JWs+$K7AB?qdy;8*7bc{ffjlw|SyIy* zk^GDIY5AA6sXs6F^hYkvJ%cZRcJW+LvWq9Hf?|FYj_-_AZ^Osn*)#@XKx-HS)25cZ zTK<)zTc4#+)cu;lSyC)tf$>8!{@{7)^+S0 z@tV205N!iTtKKFC&s+6R-WkF8h+NG89OqML*x-foRzR+|Wlgg_d@!}CyG5@2^>4zj z5bP~-SiUs4Z~{J5)~2rdsn!_$q)!?NoU2l*nJ0rO7+r zer z`Nw9zQG;+E82(}ifzOgSOZ((}HLz*R`z+bc(zKZWDRmN^n}i@jpAQ`h<(ESPq5kgE zJAPE=$6%grcpAJfl7Banzudi(dRC>Kd*3s!zrVb!J^Y60Z~6m|e|P@1?)l;8yXDV7t+s9ue`6fF^^?DHKl34aBcP65ky;PQhf?lJOchJ z@O#03i7uQ0zXgr{E%*@lJK$ddr*G6%@O!~)ff2b*^a|H8pKI&J%BpEsrH^nrgN-5H zE;3M5+Fpq5(3Abldl)*h_4>NJb^EF}++Q^*?%s08uIBBx5KK0hzM=x{8v++0ukWP0 zJ*e5z#{qXif0tc*Xz!e0OB zvUYF%BjuX6@nnVOZJVmx?+s?WZ6R-C$Xnm;^}`PK?cORmE?43Hb;PmnpA_;#`fvpP zUq@gF-w~qi_^c2Gl`I83Xs07`aypw3@wfX@MNrCohB%|*-6&DIZw<-PRweT}Ws8!l z@OdDj{eTEdU((;MEvKn4;|>xl-1+LtESb*~&$}&|z7s?Ps=*s9QPe3e_Xt%cW}UuJ zz>ZJEYkN*gEBhhssYD;KnDD9oGJd5zC^g*fMrF57ajqZRhwRU^vd6Y7Wv+Ko$tk5* z?*DVf_gH5|75M%U-Jtj<6mM0$OYuXBk0^drap`P(?Ct3IjK6+hIF~YW{yl+~Kx0E| zPD)K*ZE6iPwgj4*c3KMm?#8Cp#@5E$ZSEzD9?Z@*cW{-?gSXjV688wRBwkjSXZBzo z%sQT5#dw9_d032Bic;^-gIUe*z1V)8;Q3RGuP@BAVtj+(^;V2;6pLzJ7US26$rA6w zBfN$DPO*Kp;PqRK`^21D*Tr~EAwN-!ZxU7OgLX)kJ>vSpeqdL6@Rj9#pcvmQ==kU) zkGP?bhq3ECSfza5DaNr1)jBW6Zxn}1;w$&zVtd}jR#4h*%EVhZ92OJpk1nyg{j@K- zG5&Lo_d<~g7mj^6pm68@+$rO45z{!V67fFWC(EnH^8|2;&-*_45S_%&RpPz;5O}G6 zossri1RauzxL&$mQT$g``{kJp*xL%{?+ow5YmHka6fR^c+BO8?xk8&IzIr^#qEtI6 zFGHCP&YO`$)FR`oo)7z^{q?Kn;XMlH@0b-uh?I=8dLEv_hVB=u=hgkN-^9)~{;0&g zf^K<4{5^OKg-sYw&cp7KS|Pp%d%r5%*-zHMXJq`<>-wC;?GdcT-hnkXTkLc9drhrF0G{>#!{8QIt&j2qd{sCB`rYirowgaZi82WOrx4xIYytk*5y zi&xP7pJ+%vg}5Z+m-sHkGG^Ayjf@0hNLB6Y=+(O;ef`MXtt9Alb6k&6iVmqeJ)YJ_ zlj-4TQjeSIOjeKPj)_=$d?J}J6Y;>O_uSr6+DIQUQidMQWTMCQM9Rz@7bBVIctVfo z#>bDt#U|;nG>c4Q=~Ub>jdZFx5Sy5g8NTi|T{qHX39+R~rv#gcq#hwgG-;fGggj(4 z6-TNOiN0J+%8iC0^u65&+e6)O$qnlfUFPI;y{k90KdgrjbW+w*4g{Bxde+05GSE7E z3jq#xb@hdjJq)#Xhsmj^-SJ{TCPana`Go_a{gIB9JYp~?(}61Sr;>%SY)+0BLj3z| zYU!M1$+%WlmO8A|$U;)?(Vnn$XjVt3tg9pXzf9;J#H)!LDLt1>U`)ugbbeQlN6n~} zCq;vh73P;g`CLlAIx5xU*|a`}7ffkmE6GaZW=#owIGZiRDo)R?bP!Y3kvw)(@gHZB z9dQ!WH6a4oe22e?c+gB0$nu zG&?2&@#87Pv$&bDG)EJeET(;tphK5QB%|b@N)t&_1mr*kPz;QwAtGCiC#_N#rDcNy zi7~Y<$KnXWlI3bGP|JhMUy8vD)kMdQ7}}6FDLfGBeE@Gn1h7?%WBIF1>Azrf4#HMf z_zv>Mw46}@-w(?rx^mxDqBwv8-CfzA?;p=AphtC>?!Q#zdnZmbk`CdCPe{R^ z?I$-A%cEzR#pogL(Y9{cOkl2>j`;%QD}4rj3t_aLsO0YIlsgIf8mPiznYGP_He&u;A^j+@6$`vDUh?hEHi%-Hg^BQy<1gq zSVmcSupjd!hdyv_qv1HnO2oIz(AF&wac9ldAn~Y8`(J%H8;J|9StSWmc;G->C%V5r@)Q G|33i^HI)Pa literal 0 HcmV?d00001 diff --git a/const/funciton_const/condition2/condition3.cpp b/const/funciton_const/condition2/condition3.cpp new file mode 100644 index 0000000..aed864c --- /dev/null +++ b/const/funciton_const/condition2/condition3.cpp @@ -0,0 +1,8 @@ +#include +using namespace std; +int main(){ + + const int num=10; + const int * const ptr=# //error! const int* -> int* + cout<<*ptr<C%z4WA#Q0*+#siO+&^Qvy(WzuF^K-qZGF6#<88`Qpb+$ z>#nUBWXe`yb=|`FP^1Bx_>%ZB7*c->el#ha+D!tfLlhz4N151^Y#qy3nF87xp7-4I zI@dQgOdx(B?X7&@^FHs#`MBqtd(NAFIo#9jcDV$TTYOrOG*cCnko6Rz_a-SStX-@Z zL9tETB-R0`#4ji{#H|wZWfhuvwX*YoSK!y~wt#kbP!^bTbo|_^>Q6pH%I5ni?j_FP{XHUxQbQ;KQ=O{IY5obM7DYjeY|v?tnW8 ziR2(L(Iua&oNS4DUoqoUetx|a!Gp5Eyqw=>;79FzzvNSfeX724<5I2K&s=p^+?g~+ z+FI{S#+#BxDtEN$XnR{zTWcVj4(ycurubyLXaAtAiO10oiTYQM9}P9>zm>S7v1Vh< zuTNin=2G+4?Yq0qKQ&7_dX@a%gzyQM%W5^@8}Ym4y{qdR!q6gqMDI(C8Cf%t=}bnm*+f?8 zk%4`BJdsiGz`o98I+YlRjwBP7uC(U!`}@syBc0VpqS-`iBxRUgE#V_V2cAx5!@b>o z{po%^44~g^O{C(U3y1rF?Lq`2rl+%JCJ~*84Cn*Rdbqz0 ztzBD3r&R|+#?m>nP@5sp?-+L(y^S5#W8;VQ(WsHc7{rc7^{AORYQRG$OEn-9Q6nYx z^h7#3^__v%LTP7Uw^crLNZ$n|6NCo4a^ z-Y>LA=grE6rvPiy&sU$boL6>lf@)<)J)X7Of+&$ZPRhm0E1(@UBvaQHFG|@>G7a70 zyp;b@4Vhlv;kA53lfUXiPO{cG?m z1bd4dRxS=L9)}N=wdpJVxOTE)MpA6{;mzYxAc1FfA3UjeYBoeVFX6#4UWG~ zuC1(`p>0mfUs(7C1S|B(!R5HNt6oOI>rX=Q;yD%Hmw)Kpd~SLAp?6)mk3Ia*^2!QY ze)HT{>k!TZ!=Dc$@EH>4XrElD1vX=OpCQ{hnidN`p-!T6QxHVxv!R2b{7PsrG|+Qu z#}6y~7|c^mKL+oQ9s~a+ z`2FC&Ko?Gf--<^627DO&D)<+{=^J$g{C@CyU_`FteZqCr=i0ils(Qv%??cU&J`T7W`cK>S$D~^N(~OQozuB(uwe%GG`}hq*pCEmQ*Y||G!`tw{)-4tX0pynfihzQbEB$K?v#zk)dS{gXm|Kp%|2 z|LX`0<2ypM9iJ7VppvD42kmr3PEKbNBK~$?To;rwpCL}GcsELv?pwpMv{lJ`PT8X5 zYJ47uXg?sr(wFqNYb$9g%({cb3U|JS3QOiQ#S3mru7M5Fpla|2OB4-?%RNGsiP3jO z5_WtdUfc6hTHOz6PbK=0#e`4wm+{M$L8;+(H!HjKigW$gK4gDpls&dxDRaF`N=_-g za{r$*zQ;N%T8Hl+(G7}!RPi>&yA?mE_^9GX6qnAn$DYp4Px>1NM{+4M=ieP@4Kz2k z<)qZ|rIxlpb8Dcb$(`PE957N@lB$-CTNFb*(0tm><4zG2VYs<2a55{f{u?) z@`xJ>c^JFSgH_7+onjoTP_6S~{6=x8B))ndF1F`gY!#*Lrb4`h!(lPe{^$~G+fVzV z8{KHgvyOJFgyu{U&y{@y8|Z z6?DrZ;_tx|C~UH=)7zz1i0{DOugZ4zOc{Ju#$UUx&q~}L!79I62CtOuS!=&d;X%iI z?gH*#Yc7U?*CAWM`$>heNtdzD1NW5}&u>y3_l<(Ct#Gz zrbnVlJ#MBmSv{INDq`u0$z;Mz!~>t$eOGH~BYo6J8G1C6i5}AvDKm3SjAo(}2|b>h zm^cO(o20|iEHaIyQ*pyI(y5j}Y;sa&_abEH3rV?0d&1J8SsR_Qu8!#cGNF3_uO@D!^jtQ9F(K2^`CUC8HKSIZ z6b(XFm|q6vb1C`is8o+<)A~4GFr|&HBrA=ZH6`?sY_<@qI6b@CK}=Og^4L+uf1F8n z#7R)sga~AhO_J~ z?6?TTkEIaL;%3Iu97$xdnD#}24qYaZjFN*YO(sndkOLJ!F))^fh-@{Uv`S%=mJJRh z#?`tUk0S_6maDZuEe|e#AqF#46P++(XhYhh@Ia{d0lX0rz*aGV<*zoS|ANsu2wPp@ zJILpI{yQPx6S)eqwbMr+(A^B%q9nct@ZaJ53TMXOAC_BCu>13U!Bhdav!UWn|1RL~ z;4a7Y&$@%sa#jI+KdhAK>U~#j%Y5&dQ4YPTB5FU`aQhW3 z=$uMTWq-aOT~_|(#*h2|i1P1H0r|e}Qwf84g;O~4;riMCabPsA%Diyjx~KroTfjt; z8derX9woa!-^-Si|4hNsD)^Ml{Ob;XzQ0Y;qy%w$EorU%Z7A&Z&r}7a>5THfl?PS@ z;ChuPzK4R{pYMaGRYHUF8f@?E|BsYEpLO}1H?JI>_AE31sq*J$^7)pIwb#%0>1FB^$k|?&nZF4eyMN){ zttvPqqpUvIkNL90pYP{~ls~tVBd{OK*H9pg`#+`5`{T;7LG_>Q{ajF-{@zX|%?_OX zcRO$n$Gi@DuG?m8$=DDuH>} Ip>)>&Pq=@S(EtDd literal 0 HcmV?d00001 diff --git a/const/funciton_const/condition3/condition1.cpp b/const/funciton_const/condition3/condition1.cpp new file mode 100644 index 0000000..b58bca7 --- /dev/null +++ b/const/funciton_const/condition3/condition1.cpp @@ -0,0 +1,10 @@ +#include +using namespace std; + +int main(){ + + const int p = 3; + const int * const ptr = &p; + cout<<*ptr<jVwx3g+9i@UZP#(neIyB` z>84aP+a=x9R3o{})J$obnwd4f&$FgTob&y5e!u_g^>odU_o@>UGuE@6_3_tD&JmR|5m1 zZaupjb?ed1z@U4t?mbLQ&CJXUjm>-aGVR^d)XWt95*=OmnT~p0^z^!z8W|Xww)>AJ z8SBwmr-M!hU7dkghaNh*J#;kb7!BU1o(}Z~YyJb@(NV9He&;S-4d5H%x?>%5bagv) z)J5+azB>T^f2?B`Ln{Dg`24vv$i&zL#OdG?&SOMhFo+-1eeRc;&HH+pQ^yv1kduHC+V{(FM{ zIB+od&ydh#k$)XO5%u@UQx`8?zH&AC+VvavV(-U2h=2I#acWxn(~Qh#S=p~%zsY-> zUr<<7ULks4`Jw9Lr_Zw5y07)}21R2Nx-K0|S9@9TSM7zhxvm~?T^%}h)a|H`u1lwb zFMR3t=%_bfY^R>n7VEF`HW@f>UuV;QMO=tU=`zS}iPUWUj+b3~S&uItEJK$@UD^Nc z!uJ1HSN83~zF$`nW~i$J4^OuThGXib7ej|)7bC}S4D1y;|K%xc)iAqRGqF*oCohf1 z?l0MRBCsp`3%~Pv@GXlvyqpv9W!5I0O&3G4p%;&#p9o(yRAv`j6#>KDYb&4-i7kP{DpZM#PqoU+9{~(zs*Re*ZYLjz!)H+rk zvD=s2AyJp?cUZYlgT0)u!LmC=X|QK+_|o5qM!Fz`-(aZ0Uaz^r`J`H+h%OJ`U)u4F z%3U;yp`@klVI7y>6vpP@Q6J_;*ktvLJ(KvS!_u(#(k|zXQ~8QL_L9jOY^I$C8`_7d z!3HhXV8*l5(Zt8AM5XRL4fcMEdO0rrjae9GMGNu3+Ek!AznM@SW)d1KWf*^pZHVxGv}zPhv4R|;!Tva;G*{Y+X&-w%NMf9o z^X=3#<|NR6BlbEJXN>dtEJW8c7H__uD_7XpHCV@SBGTMLor25BKu5;^gS(bjqru{% z#TK%Bk&DDl#Ix|TOBNQ>E#D-i$z6q#y`7x|qf<+58V8?Uy-wtv9VQyI--vdXiGHAr zCvhudTKEZ)g$1RSuQ?@fXC-^PsQBYjE36v_o;_3fep>1o51YURSbz?^^~>sOqz&g) za7DOkBw<3N&Qu>#N6C%98n`lTa+S=}WP1)F_7MixXs%<&iXl z@U(Dvs;M)^GbN084HjKg)JXR&bmG_7UKKYk33w-BIXn~mgWq*YtuaxVt0NPQ%7hl1 zxdo-xujwW71l#*F;gK`n&E-1Hf41Y;fbt`DLC*#T;Y^@$wiz*NHa`Q7;Ar2p?8j{a7)nHI@q zI?VI5c-~W*_Wk;ZY&(4>sP~&DpC^ocir#N=x(2hp0dLr$a-m(svrbVJ;gV0%5oP=% zad;<1PNx1W*^twf0XN_UNO*ye!Hjc5ExIk4;WRd5`}S#OjW?B}$Q-T-f4v4fQfi^d zl0~NB(qOi|G{1-+w~H5FBn&t$>2cI$B@1 z!hW7^l4uIJ&5Nw^ zKj+faxO6xBI=$LE{>+9Ax=l-YTn)xzhSF^mwn`hns*JTpZ!}m;;+(4i!Qv>sM=0D9 zetZZyXW7w8Ywzqc9)pe=ai$V!cZkixrXfTl6J6DiCmKv{pbnx>Qkki5u?=D^}0oS}$!~D=-Zfe35+pccyA&?j$#5b8R5h`;&$$xFToq*)o=e zU(QmpP&Oo5UK3ZUJ~tFL5{dT3vT1)D*6(T;c5coDnTyKYj;mPWr@^iX$pV*^N?_~Ad%=c0*gEFXsGDvt2XUnFxTEO({>L(m{$uhq9tcYvjXTOxp zkPSI0r`=ntJ~s@uB8m3y^67s?WDfT}b7bm-M%amMpDTYEQFcv()vkwKSq-;6dfwc| zrLefYHJHKOb3sZIxXT}PE15q%{$G^GK*c5H9(GrSt>`u*C25>2upuzTE(qLI~_5uy|(1ScB8BxEK>>94Yh76P0k>%VbpZmOQzG678 z;(DYDl?RDWcV6+A;cf37rqX#~0Y{*kZ2pBID(x>kJ8DEFLopyq^;V$VPe{}OE*ebF zS%XEIC{Amz?E>|rRW8|F>2%x1+uVkZ8mzbpt7jG+BD=NGiXa&BBGQO|S_cv!bvEjs&1)L;j~wYQ(RN2ZYbJU!nx3O(zHH#1Jh zRysGt9!_+#!C|wcz*2dyq(gOh2Z!r|-GAxSGgJ;a;+Id< zV4=mN2~9DF^HhV4;oeoB7HhCg8tiIqO-Yr~jm4HVuKa0%C^Z<_Wr1=rd!hOYUJl=# znklnaSu+dxg~aa~Y-(IwExRVJk^6bzg2LKM%EFA&v5`l0rEk$K_=)~? zP6-Afu!;1%gAW@U+J*J&Vyg3&rWnArz%B7wsDIT(c=;m@R$fe#9l@o4z^#D$_=hdI zkttz{`40kkYMh*scrx(`*RxiGy`3mI{jlUd=X#l0<`yX}6u-+%<{j=g33W`ix@SGo zPeq}QNwQY~^~*YhK0Eri-n0MNe#s##%laSv4?M|Cbh2x(gPsbr3f7+*OnRRvA4EP? z+N$Q^jShW6=VW5n)c7{MMcMT{@fhf>nH8gQYz%-p>$MYOr2n#cPSM zSXgJO^eChY{4ffu}PdTs*(_ZqS^bg}UPNfbsZRt-W zC#kle(hnVjqDtujuMVZ(T^+FwUcO*8vBzyA4dJkkJm>v#sO-V(NGSJkZ-9H?6< zK7KUVveot)?15S1%BeK|uiG~bcB&BeIz!Fp-Ds{#ZOX2@2AdE|mZ6q{HiAf5{80Uv z970gr=EU*ZJD#6;KUScmW#^6a@K$AoeY?4=h?~pGgd&$bymeV=bfwCgO`*&ll{L@% z=Z%G*hh7ZqioT}5qI&XV+aF&B3SId}ek@IGng);02-<^)o7uz`Tg6~o)%fU4rU@G= z*#W4ZovY;eg+zrb{GA3XO5_fCI~0Gbz7CtBq+yo5+nEiG%vL)e&VC~8C9x528Ws#I zsSj)*s_UMq{u>&It29;jEnMiIhrXEx<4$6$;Bk z8&U{WtlKyZb^{*F33&b8`FZ%=Ofl3c!?o;f8q6$SH3XL)Qy(JN;p>!mAqn5Vpi-D1 zkY|)Omg&~Uwz-+SW$F_e%v}&7j3F{vhN=yUta7emdXlBWQ^G8IoL?+qCB2XzTDfhV z`o*n#&y`mnhR|m?ltdor7=Giwx}i<+Dzn~1MpyQH>fAab8LFE{??k@g8seJ=z+y;! zq^*TX&czz+pV7D3+{w>j>*uFKjh@rsb2w2n$SM9Qt@w4BOA66<3&%(nb)?(jiUs!B z-x`meXcvsLy8Ne~TUc4y{t>nM@;>TE{PIIkXeJ8w6Xj!}#zcvkb!Jf6k_7VbCb!XQ z;U;v4M6gQmBZTx7(U-kIX0?egJ)*(31w=uS^;Eh~dX^ld*~`$DxfLA#ve*oPdt*_&~<7!O%o^-yUs|Rc69GC5)d6-B={r zerb-x({#Fl(pTP~N+mPp{8;sA5>MpX5rw1iyz1iE4;ht$vnXzx}5QVn} z>zY9J5H#0uvZryJKYhU)Sl>64!@UH@<7*7P1P&>++yYNI)SH8FcK%UJ?*f0#BzrPr zi03Y1+(U^M;h+9UXb8AeY`M28(3lU;pI;PS9xi4|ZPM^gzE<78q=S%MYUMHA1YEW>F8+Gi&|}h*^14JTdTo5 z3mBD+$1cyQojKVt=ULDJhunqOkVnj-a1mEE9*zvyf@C_pF(0L;m@gZtWVY-+F&ujF z0WS|1R9WE5IOysxG#_E%ie*CT%!`5=BRv`bXP(zZuG*y#8tvPBKeyff8J+cS5GjTv zQ?cfeh*oeC8l)zrYy0L98AH`wKzeQ@KEr*Bum8-CGlnLD?6XwF3rQLT3lw$~^{$1o zk??nfWGy4o)0Fmw^9EL^m-3QjOzya;^t|>gi`CJ|HARu-;gUgWXbZbmr3B9xw7k<2h!N0uJ`(X~Lt7rtl&Z{=PlI_79#GF2r#}Sn)rXT@WL{;u5@skKADzsD z$B9lhTdTg7>8B6?VJkk=2)()Wak}664UTiVOEWD}QaZW}`?(#gh?h9a1Y{oub*Bz@ zSNQ&?XUpe9cOq15#;JvkF1&LMRgB%`jBl&D6z=IZWtwGd?wF}Kmeh$F5TQ$9Y z@#DXHhVNO>y`{{7G1~$iYGV8-Nm>PzQ(_x^M|!;Y>V8 z%F$pZw)a{#!}6~s+!3tO-X-U}gBmr^MRc>vq)8K?;_X1E#XtIa#7{%aPiLA-cIz{X zCKch|&aVJ8@4$H{(5+Z0PzO$6kh6Gzh~-y=AEb}xyrnzJqJnnel5nHX#5(2Rn!?JU z=e6Qd6~wV+F1`KU?YQLdtSpGRg-8q2V4qtKNcboIw|~%Sx;fKyk&gE3kFuV7x?-zF zB-4jNZwj-f;>%JPH4~{(Gsy)tnYLB6s%OW3YpmD@bMy2xD-ZpSJyu7nrkKm!V1oFY zkWRZn)K0+s87ecD{31*O6NywFts5GfI)8l2kE07=5ZG1ak8hw(8Kw7!tOoD1@2YfZ zQ#mP2Q#M0(Nxo2OAC~A2hxt}T~fO3=NAeQLEM+Tz)JT_%7=DZ_9I z%;Ty?>BuahxI`HJ2PjX@dukiX>8%)5wt$hbb{qmJRQ6~pexh`WZRBjY4i`P5xui3& zQ6|dn1VCsI2KX9_Y?hjM9 za>iZ%bE~fdYB26Qf>q0JUtKCQP8A+VvQfMiJ+VtkGJ@aEo^#!w?|!eY0+wP0%rD1} zcj{^HbT@a5WB*0^MO^7JexWZMegzzJ)O|<=szLl>W)YY5LY6cXKY0eRnCx9&t{a&Q%(J=Bgr@%Ur4eoPtHY z8jZKK148K?Cujq^n9FVD(a<}+mTZIGN!%8Qs&kdsE7kzetifQ)V_TM$*deIdqkxm; zE)Vf&p7D;K%w6m36qB*t0domN4fz*tkuMp-C0)Mq$vIb`C0$Jb_5h9OLoRu$`lD`k zQYX$E!i2x^_y6~zA1$<3o$%YjBmSQ9$WPPUYcqcgF+TBMH=+l=((`@-~W#dqgZ zz|8w>e zRdAu?tS3@4wJU2aQGmaepnH-7$irN?C7BH|XWx0~W3)K9%{;)DLZEL+A)(x4P51@8 zq(&1d-2D)h_U@k@{iXIM+1H067+?WplTq-K<1tj#H>ag2PG+hD$Mc~~=WDQn5f$Mf z3r0V-f=<)2{bO$p8JPd z>|)fealM=h>D6`#XUg2ljDG?nU5=}a)KPR`7^b`8-PmZ~c7F+=;0N+;epX$gz*fz^ z{vCzR2GHSuzmf^Y{lzmeQ}h*lWz>LAQ)vic^TNIOAzX@Wa=+s5B7P*br#iKR94lfQ z6h7!Y7}Kpa{u9%`{3`W2HSSc>`1ArxlzV}~UV-@2{loD+`%yKcdZG?5Kx zR~ps%M?gyq6B5<>N9EStUXNOTrk7I*->=HcFIPWVm+X2-xlkuuvGNR2pgW&pz%cE2 zdk}vRoXl+*Z|8HY{i3MxR(>Eayoe*%HR=}rDDK42rCTS;Y@P*8-mxS77=V6~IZ`{g zNo6h}NdRoM+$BIW)zn?uW!mO01;TUe#)M%ET1NvLvWzGc7HTks$%jTR3!pUCag}Ql zGmdC43($-01C1YAD>G<45@EfewSwx<`BjKmiuyoYLjZDf8JcR`ddBKwOC4wK8Z5-4 zh|GK6I5B1#8NVLNWI}bASEfUj682wjH?nVx2D9i3zdBwulBxKY2K%sz%qDY`9z`&P zaBR^mFwpj6Yl)T)Bp$!2s`pdz?--1EmX3{Dlb%Jmi(M2f?Z#LfH&hRqz`- z=NAwkM#yXKt1n4tUo%FXW{0z@B}drWXWTA8^Ek|Qj{vxVn~FfGJ4>N~LVy_JLUxr2 zJNZ>nTnIE!2oOVDh-?rU;*2)^Tw}W)P)h$&Lf#;!k$IKlR{0Jb_6YC z*G&2h0FW2}YTtm@XCI0j`z=-)ao!1~MKtMYj}+jeh|~#k+r~q{xzRQ$oz-IwZ4|~T zt9-ZmNX^CCGIpOn+0Ua)n85(r&`l~#=WikNUUE`A-Q?WZq8w_94&6{ZA(2t*ko(T+ zdjFu;7glol zDRPp+qXL)PP^j}3SRAY(GN;P_?Y$H--VJ)4gz7VrOp9kQaZu<``?pV|;x@pF+`9tF zb9@_3v4CF@0@sI=J$QgZxJrbZmCk@dgt<;^?AKUQY}Lr5uvus<4*sS1@(r7{B8w0< zO8_?84892ChCo$H`j{d13F8ijs$^jpez=){sKi+eM31I0i!w9U8c98l5HX4NSJlDd z2SAUSG;-VzB=YKVbfI~zI^mG3k9Eb=!(nGR5>RGfq)I2m40OhGpyTT)gh4E~?#{&^ zwO3|wxV>+QWAPEY2nA2MgM7!A7ExgJQxjO;zN$f}fc_m{ob*~A9t(|E=Lg$rr_?1p za8&=+TsB*gDsUJKwiPExGv$$52-3h3PSuFMR7d`)fg&LhxsJ-emR#R~LED2cppE=} zYb}~Fpq{uGDoJ_{KtT5zOLx72*S(=cU21%dl|*2X+!QT`6|w&|kv5mTODfP-P{bG9 zB!@7y*vU5cAF&hT5Al*O(geV=0KK7EDeO}odmuDRa94dSN77SJ*?6KCV3Q-h@1{FE zvWvF{vniD3kQGFeX99q`w#BC@=xH>yoQHB1^NI4oN?+Ae;OL21HJAK*9^aQMIsBw9 z6ZWPwjV7%n6whj4g_N%$Qa5X`artr=d2|7pMFLPkqwl0|)L{4gxu5gB)QOUJOPc|0 zQbZ`%G2vKB8I3~;vLN08=&>+rr_N_?oK3O-!3uQ1%l>CrfrHUxS8AGWF{Ss2YJK%t zHCKb}qq9!RfoYxC$b6bm2`E^-;u18H@IHKxu-(f_7)od*QOCSj?iURmv(k_I{`ksn zOPsB)XY6pq@}DyA0;C@tNu+MYHwhIFxzYpbV5L5}j&K8L*tC7A%`iVHOU|>&dJIIG>+5g0 zm+^5pEAQ|DnH~b$U%v@vee3*6mtPQR^$fX%`XHeNL%-2i6xi|a=qtThK>K}Z#^)!l zauHJFPf>Vt3C9erG_yuodwE8(C=zW7mVnxW}B{OVa% za#IEL%|J{#7A?|Gron(#bO^>e=z3e;A>2UiJEZ11>K&TEj-i!i_yWHhfY1^IZM25+ zj}vzV2wXS1Kpl9s0$JCT3R(nZL6kjLOk2HYJ7fq z2Hc2KFalBp!LJ~nJcTa0wcl|af0u9dSIdo6f$+teDBz>Ufu#c2)4eY7%eC_w%oQ5l zmU4Jhr&cS2@C6w}tW<;w8L_^R2F(tGA~Ee?i!)o#WH&fDL>w)RR=_V~9OM|OHUQW^ zK-kl1f}AH=W3HrsR*Hq29-sJ36RvtX()O|CpWOF8hYK8jpIXZW))1E_;MH9aDq9OI zf@OFyufhW@l)}wZdwnGog9*uqYg8Acy<2N)bPE&cM3r1#Zmrw)we%Tk^zVJ z9)K~=#I`JY|LBDgBHJQ*wjg~G7Qg$b>oki4vSU}~-%7itEU@<3cMe}fPVsCCKFBfj zd%g6P$HY@-A4E-dT|L^)^gw49i|Q`Vnp{Nd72RB~uib2wGcs&VN$!XB{?_N-H|56! zCI@&s+HW{Aa@L@NLhC&%pbql{j~PZxRv9~fFf%W7o(Ik4C-vE>&(xPP^Tq!VvSm=C z#O0!z{oGh0h3KZ59HZb}{?hA|ebGeb>gO?8Hm7|?Rt+E5$?!7AO!^1Spql>NetN{$ zTS|WLV4Y6g0=(xbdq&mqlev=N-0bi-$JMv!-D2TPg;BM3gJ@^ejZpgKGEhg52LA4J z-g%XI{>V%AdnV1f@vnTTN*a7}Wa)rJ@48z{#?*IaY?0oq!ERh1*;Vw9OFkZ3mFlR$ zHq#1TX9Au*;qc~L;v-l3Y>t0jtiJZCVC=$)L%v$GmOH$|-`cx{*2xN2r7n@*J)WC5 zaqL^J_3`jr;{(FGOrVwNdas?_%LKZI5zl%0o5srpWHKHtc;d7EFO_=i#nQ|a0#s3@ z<76kI)#2q&>?A@@En?+EErrQkqRgD^ld&B?RqB~MWogqA(Aq3kja6UfKgdi2bw=upoye39KmI>E3+i!zpkYxJ23I>8$GlRp4IT*op|9m~BlM)t6B zmUl!-r$l`y%`H3?lxCZ6%7U@X?>KbNniB1lM85&$;scRqqQP=_0K{C=y{Udeu<(7% zKE#HazJB&8=Nu*pLMGU1MO~z^T@IfTb-{%Ht~Sjf`TaiTDZVb@&Ih4il)O;kgCLHB zhu#AzK>yVk+5mf}tqek-8tX5MS3zL}iN_qOE(VK*9#9wUqc}A<#V~c_$-64nG#{Y* z5-Hjo9iYWY`R?*RsRI;50wE`xwP5}oT|UG^FFhLc5r;_VrA0Ow3_~^E+KGkQYd`w1UUKp%v(u z`Y|rrkOs|tE>q@>m$zl)*xVl&xet7RF9Bd2C3>QTFOh}|iH7PB{)#k1t*_*hv+6<+ zd9#Ni63!-ETqA~i*rkpwfJGM*pG}Su!hTCLfUhhKCK^O3N)GIT1sSc%VHN@k>87-4 z(pRw?|7ko;W_=)Tu1S#B#d~Aw-@XZg2K5j6=hdrzdYB)8F9o(`E*arKi;j~;?aPg= zSTGN0QCMy&SZ+O$F6@S(^(F_vlHVWml(`^c478MteY-%QC&<)YDJ{LC73ihHVmXck zdS)5@#ygG49kZj08O+0PwalyDYgAY52l(3_nH z{fY9=$oC=3I`tfHH8gjezjgjHc-NN{Zpt~twq~I6&yW9sYsN#N+4)hbi$SNLTmqAn zA+a9yibE7xQWhM2!R*;m5EI;s<4Fu|*2D%}{5)bM-)GmzyGb9t1~blfv)`~TZ~$;V z!Z`EvnxduOIG;As(vv?(OO-AaQBQG0b}#7=#ISB53P>%(sy??8P|V*zqosu;>|LaI3C2e$NK!wWelNdD=R>0-GU3#nu*R|;=;r%;eEq_qB6nZfm3J; zy_u)?*c?oL)Z=l@{QQqX$&iK^RTr6P^Nrh_@z)J?$ZD1MIb#dn3%uKxb522v53am# z;8^D0_0Q!WFJy&H+F#1--Syqq#+Zgcv(LZRZJoGA-*CpQ(n~8h4x-ikb6C8$+o7_A zZGnHzGJfEhl{8*)DV=U2!&L)I&0n9azj@%n!w2Ukds}S@3+9)P@yjsU)xLtnDc@tLEpnZuod7lty8Mtjsvyl^ycnZI|BO6Op|=K2>XYct4^GG? z-j0qMlQsO@ysH^u4JpPE=fqF4^ZV|Vc~rQE&G85*Q;+)~@4tLr(2dUNmyHw6b9#3S zlBjNMKQnD!WJ7HwG0uBsUuXJiC;zBt8F`#O4`&H8%bANf=}k6r<9(`S-9@`ESjsfm z>U`CR$|)`t{P5M===!fCPGjbIzkdm3P;)cbO7U_QN{;!5J2ZAMSTzOvzs zhMjkfJy?>g>*$af|77QSpEIK;M#WqiUs`3gW9!;(YfEqS32)?Da7vl+pcC3JjPpI> zgp_bbmT7xf{{dLy#leJ@&jiVliJb-uQZLnD$2=>-i!tM(G%H;xrWvY^%Xg+(q2ER(biO0>8kab)`CpgfwfnBXm^y)) zm)fV3SM680O5*_;?!)%I3jGP-3#dP_7e83bUIf%11AG(rfKRPDVUeM4-Bk@B=l&%m z;(Ruy$Y!XV5rcAR6*a>Jpu<4Tdk#}3LOq&iIE)jRU#9=l)O!;qRu-ecPOF^HTsuzc zv5!wF=Yz%Z{31D}oCiE^-X!21MaL~NoICbW%kaSZP%g7Of3NRPQ$WOE!!^>8Gvp`_P%<-)m0gI0P4hBNobB$ki6PLc= zg49VWBF%iMfe+A@5U$FahUUE$03$4u!@96%l{yxmv)fl2uN@Okf^yY01I-yC;O!~q( zL--S*E2RL23$o%CNsYC(k-hn(2}^PDyV$GO&tk97kxD}X9+DnXtu<9y@-i=Tgd{LhT zYhov?3A;?)S$EstNt|0@(ag7w!Ay0O(aI%kXm}4sBAIG1UQD#8(1s8j5D;22 z69gHbK!qku9Gl=I(g!_|cQm0`qtzG&TvzTs^wW$?|EunQJP9t)}g;l+skjP*y#nLy63@Dl&L};IqAo5(fVQe2xUAJ0;;h#V>a;4(>Mu?$35lq#HmAZnSal`7^&% z!2Q{ve3)D9voAcbjWJ*!!b0FroHQ#!45CqVR~>WT@?}fX=D(~DS@og*)`E*G z4~7oB>YOfoJd-pnG8OUqK0fDAzUAd#zegn8bc`NSZ$D5fd2uBCYU#68^Zajvv9B!1 zdj9S+F&*n|)0%qa&UvvaU)4QnNQ~cVgUxSyb@-CwvMFbnMT)>}zwwTnXKH;^7BaVm zZ`k(b#SzvL(~19jmNmW;W3YULskdtOc7{{a?h(0L2n(^3>BxV~101Xmy|?{){>&~} z4hM3A!u}{eIxQ;&^IY0x?d4PRew*)^J8Z7p;jC}!st;#(6tRVFEAtl5ILu1hU%Kk9 zV-;p4I^XY+*%w+Tr@h|F$wf+2LV(>(11t&}NX&-zN1{Ur6f4p8k^kuVY_| zI$ifSi>tqN!hY4Fb(NRKUGu0Ln{YNe&1S+K*QoVF-^yQesvo=7Pk8PvyB)OiRKuM( z`c|5B^^^0)iY5M;gkmm?Goes0+f4%I4TH7jR5*WQFeNa=G>dR;YGcbhBy(iAd@HI_2av@EgmHjXmHu^&`I5I;zgVWMazD zs;}e8^}=;Z`$AHn!REUQ6SQ?^7q^`bI=%tjkwmJR%>ynP|5=Jk3@9E!K=RKhr0vP6 z!&_Td`qKy^t&aE{qQNTj!Mn0dD^!dmEqI8*1`L;yu7+#bPWWAfILY_yE=sxzU{|#= zda`%M4m!sB)KC$XDllYkhMAKxCKmUzM5p!2fQu`@Sn(TD&OmoDJBRv* zOulL&0f(r}l}LqF2}oc52NNKD0}$z3I_fk>P;<54<-f zVURcXerK_iK*D^)rIN@puEN7s5$}=FmKbelAx0D8RfRzRc}5ap)a#O@*$WH7?c zS-^#6R)E+bPkr+?v1!c;b+ou)31uQ&e_&!73rvJ|@irspz}4n zwDy`!If1It>L+xn(K!i(w4#h^bc8M9es3q>A3HR6xSi&7NaFk#O_&t)$W4K?8yW^?fD2Xz7ZS}8tl{kga&^SbpqHPo@5RMJR%bRw8$of4}F-H z#djyO5%5T{_)k6UtG%vJEdKSn^SSTBu6L{lGgAAE#yf=QHg4j);C4u~``&<4*V5d8 zU-xL!fGZb=Vyc@k7JaA#V4cyH1%+MDplDETJl;ZEb!H%RmeMWMP^=Z`7I3vauvUYF zlM~#y$NBAdU|~D>(gjEB$V}n=or|JO20k4&EM-yuqmkU-FOz2J4}z|JUVeC+xBsvM zy`SLn)pS(TdpIJ7= zYVh11k9j_#ZIjC{ee(76cDw#=^F70(+un~oqh54fO-%aeE^|&FHN1H7k+ikj=G+mv zyZH>9E1uoI?AeulQ=V--V?4M1ZM^!gkZ0-(5qQZVnsVWj=})<_&Z(?mx>Z7ceNE`& zgNHAz+NzvcnQjncKj~uC`zb5`;!Jq4q#G~ORIuD3aU{Ld%UTB+H$CgCnqIVK;k=>Z ziz_Nz-K-W~Sh`6s!gs9h6xVk?FMQ%3#3Y6_B`{0pF8r|f#JDqcB_UH@1XzwI?%l7l zRnDmXs)pLVg*Qt|h-0O`73RUWou&a%6p~+*8}7@0mbl++*pU1UTix|%EvFsWW?Z5g zJ3H-5?``i+H`2_VZ*2CYMf6opkB>e%$eplD<|XmV&W`C#n)^MTnP4A7zjI@7>FQ41 zGv-zmjN@h`E``wwm_2SNXK3s{;~9rdJo`NPL=4YPov_lqC`=MRw)>bHnMeIPC4EtB zE(3B@VVu^-_W+v)XXHk|-I;@Zj=hSReDd%3=W`sb&m|=Kqqr0u3{RxgT zMkAdYLM(uqu;9e;rrSTUt7{i47XhvZhy7*JQ4v)!R&fbVjw-nT99b|gz%be332E)f zB9}uKrHg*%TLplD8SR>=UseF)k!m#%H%nAw5OD*;*lGo!qPF6HPu-krr(-0Glg31T z(BQ-T3V4A((*2ORsB6o-$@*q4s*NYR9tOQczRa#KjxOttx9t>v#gpggF(pM_T~mja{s`NFM|j)8qAR!d)Gt?(q3bZY?MO z1ISWCpxX(rahv=ww;LUm(fyZ*tWfs+O!aj9Yt?2ZMQcxJrnMg+-xwuh0XX|_7fQx* zpLo6L!8Rq1TC)B$po-fVpYzHf4WNBKHjukhk_N*(E>CaS(N#LB1Lv@om=&^K28t?Z7J(k37yFe?u zmU=8T08u|Yh91kJb%Um*hKX#fBc0nhptjF>&cPAP_d^muAijm;$jM=XZO#^CODjq( zVC8|5O#l*%0LpH_@n{MGXVf)P?j0Ytp(-2hLtB7S<|>K;+#GezfXW@9a6#ytDUEXx z>YTM2=kJRNpUeN9S1f=@oK-kk8$m&t?s$x_j*Ik{{kLSvpjw`Y3ynQw zYV;YZXtr*{ll(4xL@WKf@{!m={N(zqWEOMDi3`~#z^aP?!ZRnk^WzB?@!VESc*5z= z7b&yq?A6Ca>a~&t`c|*ift+Re^^2LHx%%&f3XRJ42Q=i@j_W+dsJ;AMm9V{$BkyVL zpe`5b^NEzvf7wg&q|f_JBVU8C&AlW5LWR z>JsyNXbjSEqtF<0mljt9l5uNY5!-d7ofZU?D~EGl(z+8{iSTpgifOXFYni>+lVvo> z{20IM?t>V6nn&Cz(1W;wxaz^Cfvn?z^S$qB{L#0q#fQ_2JqoF$57Q^V2FM<44ag4; zq5)evin9Pz&VMEBSDze1k?t`)EC6Ozy%nIrw&1*AN^kPvSlFr{;O#DzH1Z#{;5V0B z;WscHmi@g)?{JOSUi#Mmf)NZ!utdu!Pk23 zR=~fsf-fQ}RgurbBl3D_$sL z{gK#hC$IbFQjfwr#mkeJb0+sQQzWO3YH&8q%6ZXb3>T1eN>~F2hUme zv+Sc4qE|4RJx%=lbm+lbEKLxwLforLuPNY*;tz7hu{QvsK0s)sqU1N8;9U`JRL;Eh z;4b;$?aGY-uOUffpp{ov>VD@NoD!Ps-a73VM(NoSlzX*$wnFlS2BRf0K+hIM``oat zu+DAA`(FicxCE+3DXvh445aGNs_0lq)iDqmGHia#KB1W=^@6C7_#^eeP3O!D+;alB}GbjK2^838KCqw8toi zr9I}Y<4MTI)|WG0VUBEUs_hd%5CUgPb5_EmCCJ9sGFkVJSj|JW&oU1#$MQv49r3T}nwyGIKqC;2Jh7seuQ5k}qxHtKV zD0VA{Y%kQ`)FOl7F3O+^yZ{P~YBs2QAnUKN;Q}#V^22zo zY+)qqe$7bW1eA%6%>Ti>v0Qx}cNZMQV~Av~344RW9_XLxN!EVgVJ}>j4{nl%!lakG z%x(!EJwCC5xzoO9bZ)Tay)nr>Dw%gPRa?)1x46$_aA=LK0xqFZTewka4iq?%Puk*OK?*l@4}a-;&-XN4z5& zV8q7l$ZK434WWL@gs6%(g5aNt;i*PIlK_0VNlTLed^tcUJsfZd;7czM=+ogR=C3b| z7n4Y%Pc8?;2mgIji{Ar=x_TGMKX`dDh~dKv!MIQ$i!SEJ^FIue3+@GQ#X_07s&Owp z-<#xlNi^8R-FNT_&WT-_7rB8a5kNw4!z92dzE|AfX zWTr)w>Y;-3_gA9S2x*sRa^9!9_F$MCVER&)!|xM9`?5{}tDtKYD0*5-fPDkizA!*L zgG`-T7upzTUp&E@*?!!-(j6&?Mp4M_He-}^W-p6`iu1S1UIsG6xShn3GKq+{{E?$55?Ed{+njHxGDTB!Fu=@DreUvQKQ%JPq-VXqI{nJ=hp&Gdl z>KTQ;kTawek*DFXf~c$^t$O$bk&06~@)O4O{4GGtwL~ruXwu+sbRx3g#LU*Z5MlEI zOAQV^B*!~lCQRXj_>ofM0Vsy7EtDGX=`Q=4I~OT69uPzBTmh2|m0VH4wFCzZ^i;M0CY#A=;2uC=@)~8*OUggs^8bYA zgh(u5Z2-|6wv{uto+#3$SQ!nYwD-nfN^E8zOl%di5y(irYcV)9S_s$*UMSNvks*uD z+{69m6kk#cnQZT8f|)fPr8l-H?`r4pN^r%leAN5Rcn-av21Cu?DZus6W@IYXBQpeL zmuU{|aBUUZp~WdVZvX|g%9MaRfO@bo`lvMIfo(-w8oaK6ZKYLdKp|9mtNy=bt-&ou zd5aLX?@{6SlAxx07u7s^J~iFLLQ9~*bT8al<>ip;EEGyr$$oI&+GwyS*l^x1mF`&C z{z(u;2Djs2Z#Z2eHCVf-Yl=Jr!){>hJ&Tilad;&M<7ZUC{KI}L@D6BkP`r+ z`1@8XogYkW5YUc;lfjE<<-z9;TVB>U$ah)U*< zGJABWw9aY($3vT-1=>$YQ7up90GK?BMA>Q1tpvosN>g&V!8TG~r}ySS3q?rppp*ur z&5n?Ry29WlL~qtP@#)mCP13TBuLY6GE&EuKba@S-Jg*8cU$5#R_0~& zv$wjIJI6>^+Mo;YdMx`CE61+b}kNa}Cz=6{9_H>E-5x zF;g8G1f3Sxg8GWv0eOWz_GO?e(#kiG5Pk%JPv2uMHgxxt-)!F~1KFXY(Fx86XQQ4U z@Iolxb2hY0oY#?pW(%GL9A)c)c&wC&_?N{;;3sB24<(Gk8v`3D9N~|R;Uh7*hb{*WON!NeXFhXB|8b*e;VI0`fFb1-hwRXkM9>K0ln1fLwB~%Y5yK6wz5Lgm`F+P!9#N5aQ`;#U7NY~Z2ckf=z;g4^^EmW} zqh~6(!|w7`o}NgI0QS6iLVAj_=e0&_e1Al1D){YhXpl4kMhO#D7^AD3EY z*Fx-MX^p*Nw@Qd{-XI>c6%)?Xx~+i4_yrS=k)iZqY*~7L$jc@GlC;mt2U#xQkyY< zsW!{zYqOFlf!%HXw=}h%36Edp&6VKLDyhawU6W5Ww@P4&TYy?6xj&?jP;^Ht5?BFK za$Eo5XC6ezL2uAHLk?`U!-bNW$X1IRK&RV6@<0Idht$uIsgR@{-~lae4qD}4yc>Kf zk^sq4Q0i0n8pW)nrzrI)J|G(G-N4Vh+*&LrkX@Z~9U2k~BCmx+*rZ#(y!EI)WvH&y zpp9sjmtTWcO*_JRj^b^+1{{bpTinKEug#qOpW}|R-+;psFrL<0edch4W9?DFWuP#@ z{5)nG;EWB|**doyU*_59!h03oUM~}W8RT#Mub1mT`gM9UAyEK;7#nfc86q{u@l&{1 zo7*S@4G8#eA#;<40&6JX5JES(l>OHKcN8)DV@3p}aR6l>JBV1ypx2C3!IiZ7-;W{K`H;j5%Zgu7o^G z@Qg=Tx1!^^bsh*w@V^*->KTCc2-A!UW0fq@OaS*E%(|`Mo*yN(s$2hcXeH>iz-YAr zsKq~E(1ip>*zbSXQlYGrsvCu}s%zOVK-CRsuS=;pMR*gbv`(z$9)zW2cR zSlP<>_{=txX~1SkU11mwV!Oi@@QXwR-n|ON#Lqwxxh>(GwVlr!!?tgOqk{PW6Ta$yL$@h`(gCE@hH!@;&~3;S{l9>>w@@5mdQI_k#HMJ? z%tLS^)jZ0~EbjFHkqNir7m-bGhhAL}>k3`XpfE{F_A%o;CR!bESlKE}zO9bVzUkpc z0cdrQg2zcp`=ZfT9tStPjhSaqeXzo&(Mq(tTkq~uevTwMj(ZV`x6h;um0gs|m9JPp zFHt|yU}G5%09pm528h^eCPR8lLU{dNUshvmoVT1OHUmA3w#m}lURa1ue|CzAO%Z`;Sokg zsy2A^t4>pNsLF-X2SOe#XvCUL8c6Tv-fYtN7UM04 z^JmJaM#6_>n1hoHKzVHG-#DfPZi& z^B{$hR*1ib#;Q0g__-FE^i?OOj-zmqBTlTEVaswTLL?v&8H+l zfH(iwpOP?#LdLHpfi)6jAi-(jKy5fo;87pkbDnY!6e7qGJ`vzvz&j6L$K*`NmT7Yo R2%B2+=>LE6zqqFG{{VNFESCTP literal 0 HcmV?d00001