C++ϵͳѧϰ֮Áù£ºº¯Êý

2018-08-14 09:53:40À´Ô´£º²©¿ÍÔ° ÔĶÁ ()

ÐÂÀÏ¿Í»§´ó»ØÀ¡,ÔÆ·þÎñÆ÷µÍÖÁ5ÕÛ

1¡¢º¯Êý»ù´¡

¡¡¡¡µäÐ͵ĺ¯Êý¶¨Òå°üÀ¨£º·µ»ØÀàÐÍ¡¢º¯ÊýÃû¡¢ÓÉ0¸ö»ò¶à¸öÐβÎ×é³ÉµÄÁбíÒÔ¼°º¯ÊýÌå¡£

2¡¢²ÎÊý´«µÝ

¡¡¡¡Ðβγõʼ»¯µÄ»úÀíºÍ±äÁ¿³õʼ»¯Ò»Ñù¡£

¡¡¡¡ÓÐÁ½ÖÖ·½Ê½£ºÒýÓô«µÝºÍÖµ´«µÝ

2.1 ´«Öµ²ÎÊý

¡¡¡¡µ±ÐβÎÊÇ·ÇÒýÓÃÀàÐÍʱ£¬Ðβγõʼ»¯ºÍ±äÁ¿³õʼ»¯Ò»Ñù£¬½«Êµ²ÎµÄÖµ¿½±´¸øÐβΡ£

Ö¸ÕëÐβÎ

¡¡¡¡µ±Ö´ÐÐÖ¸Õ뿽±´²Ù×÷ʱ£¬¿½±´µÄÊÇÖ¸ÕëµÄÖµ£¬¿½±´Ö®ºó£¬Á½¸öÖ¸ÕëÊDz»Í¬µÄÖ¸Õë¡£µ«Í¨¹ýÖ¸Õë¿ÉÒÔÐÞ¸ÄËüËùÖ¸µÄ¶ÔÏó¡£

2.2 ´«ÒýÓòÎÊý

ʹÓÃÒýÓñÜÃ⿽±´

¡¡¡¡¿½±´´óµÄÀàÀàÐͶÔÏó»òÕßÈÝÆ÷¶ÔÏó±È½ÏµÍЧ£¬ÉõÖÁÓеÄÀàÀàÐ͸ù±¾¾Í²»Ö§³Ö¿½±´²Ù×÷¡£µ±Ä³ÖÖÀàÐͲ»Ö§³Ö¿½±´²Ù×÷ʱ£¬º¯ÊýÖ»ÄÜͨ¹ýÒýÓÃÐβηÃÎʸÃÀàÐ͵ĶÔÏó¡£

ʹÓÃÒýÓÃÐβηµ»Ø¶îÍâÐÅÏ¢

2.3 constÐβκÍʵ²Î

¡¡¡¡µ±ÓÃʵ²Î³õʼ»¯constÐβÎʱ»áºöÂÔ¶¥²ãconst¡£Òò´Ë£¬µ±ÐβÎÓж¥²ãconstʱ£¬´«¸øËü³£Á¿¶ÔÏó»òÕ߷dz£Á¿¶ÔÏó¶¼ÊÇ¿ÉÒԵġ£

void fun1(const int i){.......}

void fun2(int i){.....}

¡¡¡¡ÉÏÊöÁ½¸öº¯Êý²»ÄÜËãÊÇÖØÔØ£¬Á½¸öº¯ÊýÊÇÒ»ÑùµÄ£¬³ÌÐò»á±¨´í£¬fun2Öظ´¶¨ÒåÁËfun1.

Ö¸Õë»òÒýÓÃÐβÎÓëconst

¡¡¡¡¿ÉÒÔʹÓ÷dz£Á¿³õʼ»¯Ò»¸öµ×²ãconst¶ÔÏ󣬵«ÊÇ·´¹ýÀ´²»ÐС£Í¬Ê±Ò»¸öÆÕͨµÄÒýÓñØÐëÓÃͬÀàÐ͵ĶÔÏó³õʼ»¯¡£

¾¡Á¿Ê¹Óó£Á¿ÒýÓÃ

2.4 Êý×éÐβÎ

Êý×éÓÐÁ½¸öÖØÒªµÄÌØÐÔ£º

  • ²»ÔÊÐí¿½±´
  • ʹÓÃÊý×éʱ»áת»»³ÉÖ¸Õë

¾¡¹Ü²»ÄÜÒÔÖµ´«µÝµÄ·½Ê½´«µÝÊý×飬µ«ÊÇ¿ÉÒÔ½«ÐβÎд³ÉÀàËÆÊý×éµÄÐÎʽ

void print(const int*);
void print(const int[]);
void print(const int[10]);

ÒÔÉÏÈýÖÖÐÎʽµÄÉùÃ÷µÈ¼Û

NOTE£ºµ±º¯Êý²»ÐèÒª¶ÔÊý×éÔªËØÖ´ÐÐд²Ù×÷µÄʱºò£¬Êý×éÐβÎÓ¦¸ÃÊÇÖ¸ÏòconstµÄÖ¸Õë¡£Ö»Óе±º¯ÊýȷʵҪ¸Ä±äÔªËØÖµµÄʱºò£¬²Å°ÑÐβζ¨Òå³ÉÖ¸Ïò·Ç³£Á¿µÄÖ¸Õë¡£

µ±Êý×é×÷Ϊº¯ÊýÐβÎʱ£¬Òò´ËÓ¦¸ÃÌṩһЩ¶îÍâÐÅÏ¢À´È·¶¨Êý×éµÄÈ·Çгߴ磬¹ÜÀíÊý×éÐβÎÓÐÈýÖÖ³£Óõļ¼Êõ£º

ʹÓñê¼ÇÖ¸¶¨Êý×鳤¶È

¡¡¡¡ÒªÇóÊý×é±¾Éí°üº¬Ò»¸ö½áÊø±ê¼Ç¡£ÀýÈçC·ç¸ñ×Ö·û´®ÒÔ¿Õ×Ö·û½áβ¡£

ʹÓñê×¼¿â¹æ·¶

¡¡¡¡´«µÝÖ¸ÏòÊý×éÊ×ÔªËغÍβԪËصÄÖ¸Õë¡£

void print(const int *beg,const int *end)
{
     while(beg!=end)
    {
         cout<<*beg++<<endl;   
    }  
}    
int arr[2]={0,1};
print(begin(arr),end(arr));

ÏÔʽ´«µÝÒ»¸ö±íʾÊý×é´óСµÄÐβÎ

¡¡¡¡×¨ÃŶ¨ÒåÒ»¸ö±íʾÊý×é´óСµÄÐβΡ£

void print(const int ia[], size_t size);

int j[]={0,1};

print(j, end(j)-begin(j));

Êý×éÒýÓÃÐβÎ

¡¡¡¡ÐβοÉÒÔÊÇÊý×éµÄÒýÓ㬴Ëʱ£¬ÒýÓÃÐβΰ󶨵½¶ÔÓ¦µÄʵ²ÎÉÏ£¬Ò²¾ÍÊǰ󶨵½Êý×éÉÏ¡£

void print(int (&arr)[10])
{
    for(auto elem:arr)
    {   
        cout<<elem<<endl;
    }
}
ÐβÎÊÇÊý×éµÄÒýÓã¬Î¬¶ÈÊÇÀàÐ͵ÄÒ»²¿·Ö

NOTE£ºarrÁ½¶ËµÄÀ¨ºÅ±Ø²»¿ÉÉÙ

f(int &arr[10]);    //´íÎ󣬽«arrÉùÃ÷³ÉÁËÒýÓõÄÊý×é
f(int (&arr)[10]);    //ÕýÈ·£¬arrÊǾßÓÐ10¸öÕûÊýµÄÕûÐÍÊý×éµÄÒýÓÃ

´«µÝ¶àάÊý×é

¡¡¡¡Êý×éµÚ¶þάµÄ´óС¶¼ÊÇÊý×éÀàÐ͵ÄÒ»²¿·Ö£¬²»ÄÜÊ¡ÂÔ¡£´«µÝ¶àάÊý×é´«µÝµÄÊÇÖ¸ÏòÊý×éµÄÖ¸Õ룬ʵ¼Ê»¹ÊÇÖ¸ÏòÊ×ÔªËصÄÖ¸Õë¡££¨¶àάÊý×é¾ÍÊÇÊý×éµÄÊý×飬Êý×éµÄÊ×ÔªËØ»¹ÊÇÊý×飬ËùÒÔÊÇÖ¸ÏòÊý×éµÄÖ¸Õ룩¡£

void print(int (*matrix)[10],int size);  matrixÊÇÒ»¸öÖ¸Õ룬ָÏòÓÐ10¸öÕûÊýµÄÊý×é

Ò²¿ÉÒÔÓãº

void print(int matrix[][10],int size);¡¡¡¡matrixºÍÉÏÃæÒ»ÑùµÄÒâÒå

2.5 º¬ÓпɱäÐβεĺ¯Êý

C++ÌṩÁ½ÖÖ·½·¨£º

ʵ²ÎÀàÐÍÏàͬ£¬¿ÉÒÔ´«µÝÒ»¸öÃûΪinitializer_listµÄ±ê×¼¿âÀàÐÍ

initializer_listÐβÎ

lnitializer_listºÍvectorÒ»Ñù¶¼ÊÇÄ£°åÀàÐÍ£¬²»Í¬µÄÊÇinitializer_list¶ÔÏóÖеÄÔªËØÓÀÔ¶Êdz£Á¿Öµ£¬²»Äܸı䡣

void error_msg(initializer_list<string> ls)
{
	for (auto beg = ls.begin(); beg != ls.end(); ++beg)
	{
		cout << *beg << "   ";
	}
	cout << endl;
}

error_msg({ "hello" });
error_msg({ "hello!", "world!!" });¡¡¡¡//×¢ÒâÖµµÄ´«µÝÒª·ÅÔÚ»¨À¨ºÅÀï

Ê¡ÂÔ·ûÐβÎ

¡¡¡¡Ê¡ÂÔ·ûÐβÎÊÇΪÁ˱ãÓÚC++³ÌÐò·ÃÎÊijЩÌØÊâµÄC´úÂë¶øÉèÖõġ£Í¨³££¬Ê¡ÂÔ·ûÐββ»Ó¦ÓÃÓÚÆäËûÄ¿µÄ¡£Ê¡ÂÔ·ûÐβÎÖ»ÄܳöÏÖÔÚÐβÎÁбíµÄ×îºóÒ»¸öλÖá£

ʵ²ÎÀàÐͲ»Í¬£¬Ê¹Óÿɱä²ÎÊýÄ£°å

3¡¢·µ»ØÀàÐͺÍreturnÓï¾ä

3.1 ÎÞ·µ»ØÖµº¯Êý

¡¡¡¡·µ»ØÀàÐÍÊÇvoidÀàÐ͵ĺ¯Êý

3.2 Óзµ»ØÖµº¯Êý

ÖµÊÇÈçºÎ±»·µ»ØµÄ

¡¡¡¡·µ»ØÒ»¸öÖµµÄ·½Ê½ºÍ³õʼ»¯Ò»¸ö±äÁ¿»òÐβεķ½Ê½ÍêÈ«Ò»Ñù£º·µ»ØµÄÖµÓÃÓÚ³õʼ»¯µ÷ÓõãµÄÒ»¸öÁÙʱÁ¿£¬¸ÃÁÙʱÁ¿¾ÍÊǺ¯Êýµ÷ÓõĽá¹û¡£

 ²»Òª·µ»Ø¾Ö²¿¶ÔÏóµÄÒýÓûòÖ¸Õë

·µ»ØÀàÀàÐ͵ĺ¯ÊýºÍµ÷ÓÃÔËËã·û

auto sz=getstring().size();    //getstring·µ»ØµÄstring¶ÔÏóÔÙµ÷ÓÃsizeº¯Êý

 ÒýÓ÷µ»Ø×óÖµ

µ÷ÓÃÒ»¸ö·µ»ØÒýÓõĺ¯ÊýµÃµ½×óÖµ£¬ÆäËû·µ»ØÀàÐ͵õ½ÓÒÖµ¡£

 Áбí³õʼ»¯·µ»ØÖµ

º¯Êý¿ÉÒÔ·µ»Ø»¨À¨ºÅ°üΧµÄÖµµÄÁÐ±í¡£

vector<string>  process()
{
    return {"ni","hao"};
}

 µÝ¹é

Èç¹ûÒ»¸öº¯Êýµ÷ÓÃÁËËü×ÔÉí£¬²»¹ÜÕâÖÖµ÷ÓÃÊÇÖ±½Ó»¹ÊǼä½ÓµÄ£¬¶¼³Æ¸Ãº¯ÊýΪµÝ¹éº¯Êý¡£

int factorial(int val)
{
    if(val>1)
        return factorial(val-1)*val;
    return 1;
}
Çó1x2x3x4......

 3.3 ·µ»ØÊý×éÖ¸Õë

ÒòΪÊý×é²»Äܱ»¿½±´£¬ËùÒÔº¯Êý²»ÄÜ·µ»ØÊý×é¡£²»¹ý£¬º¯Êý¿ÉÒÔ·µ»ØÊý×éµÄÖ¸Õë»òÒýÓá£

×îÖ±½ÓµÄ·½·¨ÊÇʹÓÃÀàÐͱðÃû

typedef int arrT[10];
using arrT=int[10];

 ÉùÃ÷Ò»¸ö·µ»ØÊý×éÖ¸ÕëµÄº¯Êý

int arr[10];    //arrÊÇÒ»¸öº¬ÓÐ10¸öÕûÊýµÄÊý×é
int *p1[10];    //p1ÊÇÒ»¸öº¬ÓÐ10¸öÕûÐÍÖ¸ÕëµÄÊý×é
int (*p2)[10]=&arr;    //p2ÊÇÒ»¸öÖ¸Õ룬ÆäÖ¸ÏòÒ»¸öÓÐ10¸öÕûÊýµÄÊý×é

 Èç¹ûÒª¶¨ÒåÒ»¸ö·µ»ØÊý×éÖ¸ÕëµÄº¯Êý£¬ÔòÊý×éµÄά¶È±ØÐë¸úÔÚº¯ÊýÃû×ÖÖ®ºó£¬²¢ÇÒº¯ÊýµÄÐβÎÁбíÓ¦¸ÃÏÈÓÚÊý×éµÄά¶È¡£

int (*func(int a,int b))[10];

 ´Ëº¯Êý·µ»ØµÄÊÇÒ»¸öÖ¸ÏòÓÐ10¸öÕûÊýÊý×éµÄÖ¸Õë¡£

 Ê¹ÓÃβÖ÷µ»ØÀàÐÍ

Èκκ¯ÊýµÄ¶¨Ò嶼ÄÜʹÓÃβÖ÷µ»Ø£¬µ«ÊÇÕâÖÖÐÎʽ¶ÔÓÚ·µ»ØÀàÐͱȽϸ´Ôӵĺ¯Êý×îÓÐЧ£¬±ÈÈç·µ»ØÀàÐÍÊÇÊý×éµÄÖ¸Õë»òÒýÓá£

βÖ÷µ»ØÀàÐ͸úÔÚÐβÎÁбíºóÃæ²¢ÒÔÒ»¸ö->·ûºÅ¿ªÍ·¡£ÎªÁ˱íʾº¯ÊýÕæÕýµÄ·µ»ØÀàÐ͸úÔÚÐβÎÁбíÖ®ºó£¬ÎÒÃÇÔÚ±¾Ó¦¸Ã³öÏÖ·µ»ØÀàÐ͵ĵط½·ÅÖÃÒ»¸öauto¡£

auto func(int i)->int (*)[10];

 Ê¹ÓÃdecltype

4¡¢º¯ÊýÖØÔØ

Èç¹ûͬһ×÷ÓÃÓòÄڵļ¸¸öº¯ÊýÃû×ÖÏàͬµ«ÐβÎÁÐ±í²»Í¬£¬³ÆΪº¯ÊýÖØÔØ¡£×¢Òâ±ØÐëÊÇÐβÎÁÐ±í²»Í¬£¬½ö½öÖ»ÊÇ·µ»ØÀàÐͲ»Í¬²»¿ÉÒÔ³ÆΪÖØÔØ¡£

ÖØÔغÍconstÐβÎ

¶¥²ãconst²»Ó°Ïì´«È뺯ÊýµÄ¶ÔÏó¡£Ò»¸öÓµÓж¥²ãconstµÄÐβÎÎÞ·¨ºÍÁíÒ»¸öûÓж¥²ãconstµÄÐβÎÇø·Ö¿ªÀ´¡£

int f1(int i);
int f1(const int i);    //²»¹¹³ÉÖØÔØ£¬Öظ´ÉùÃ÷ÁËf1

int f2(int *i);
int f2(int *const i);    //²»¹¹³ÉÖØÔØ£¬Öظ´ÉùÃ÷ÁËf2

µ«µ×²ãconst²»Í¬£¬¿ÉÒÔ¹¹³ÉÖØÔØ

int f1(int &i);
int f1(const int &i);    //ÖØÔØ£¬Ðº¯Êý

int f2(int *i);
int f2(const int *i);    //ÖØÔØ£¬Ðº¯Êý

NOTE£º×îºÃÖ»ÖØÔØÄÇЩȷʵ·Ç³£ÏàËƵIJÙ×÷¡£

const_castºÍÖØÔØ

const_castÔÚÖØÔغ¯ÊýµÄÇé¾°ÖÐ×îÓÐÓá£

const string &shorterString(const string &s1, const string &s2)
{
	return s1.size() <= s2.size() ? s1 : s2;
}

string &shorterString(string &s1, string &s2)
{
	auto &r = shorterString(const_cast<const string&>(s1), const_cast<const string&>(s2));

	return const_cast<string&>(r);
}

4.1 ÖØÔØÓë×÷ÓÃÓò

Èç¹ûÔÚÄÚ²ã×÷ÓÃÓòÖÐÉùÃ÷Ãû×Ö£¬Ëü½«Òþ²ØÍâ²ã×÷ÓÃÓòÖÐÉùÃ÷µÄͬÃûʵÌå¡£

void func()
{    
}

int main()
{    
    int func=0;
    func();    //´íÎ󣬴ËʱfuncÊÇintÀàÐ͵ıäÁ¿£¬²»ÊǺ¯Êý£¬Òþ²ØÁËÍâ²ãµÄº¯Êý¶¨Òå
    return 0£»
}

5¡¢ÌØÊâÓÃ;ÓïÑÔÌØÐÔ

¡¡¡¡Ä¬ÈÏʵ²Î¡¢ÄÚÁªº¯ÊýºÍconstexprº¯Êý¡£

5.1 ĬÈÏʵ²Î

Ò»µ©Ä³¸öÐβα»¸³ÓèÁËĬÈÏÖµ£¬ËüºóÃæµÄËùÓÐÐβζ¼±ØÐëÓÐĬÈÏÖµ¡£

string  screen(int i=10, int a=1, stirng s=" ");

ʹÓÃĬÈÏʵ²Îµ÷Óú¯Êý

ÔÚµ÷Óú¯ÊýµÄʱºòÊ¡ÂÔ¸Ãʵ²Î¾Í¿ÉÒÔ¡£

ĬÈÏʵ²ÎÉùÃ÷

ÔÚ¸ø¶¨µÄ×÷ÓÃÓòÖÐÒ»¸öÐβÎÖ»Äܱ»¸³ÓèÒ»´ÎĬÈÏʵ²Î¡£

ĬÈÏʵ²Î³õʼֵ

¾Ö²¿±äÁ¿²»ÄÜ×÷ΪĬÈÏʵ²Î¡£³ý´ËÖ®Í⣬ֻҪ±í´ïʽµÄÀàÐÍÄÜת»»³ÉÐβÎËùÐèµÄÀàÐÍ£¬¸Ã±í´ïʽ¾ÍÄÜ×÷ΪĬÈÏʵ²Î¡£

5.2 ÄÚÁªº¯ÊýºÍconstexprº¯Êý

µ÷Óú¯ÊýÒ»°ã±ÈÇóµÈ¼Û±í´ïʽµÄÖµÒªÂýһЩ¡£

ÄÚÁªº¯Êý¿É±ÜÃ⺯Êýµ÷ÓõĿªÏú

ÔÚº¯ÊýµÄ·µ»ØÀàÐÍÇ°Ãæ¼ÓÉϹؼü×Öinline¡£

Ò»°ãÀ´Ëµ£¬ÄÚÁª»úÖÆÓÃÓÚÓÅ»¯¹æÄ£½ÏС¡¢Á÷³ÌÖ±½Ó¡¢Æµ·±µ÷Óõĺ¯Êý¡£

constexprº¯Êý

constexprº¯ÊýÊÇÖ¸ÄÜÓÃÓÚ³£Á¿±í´ïʽµÄº¯Êý¡£

¶¨Òåconstexprº¯ÊýÒª×ñÑ­£ºº¯ÊýµÄ·µ»ØÀàÐͼ°ËùÓÐÐβεÄÀàÐͶ¼µÃÊÇ×ÖÃæÖµÀàÐÍ£¬¶øÇÒº¯ÊýÌåÖбØÐëÓÐÇÒÖ»ÓÐÒ»ÌõreturnÓï¾ä¡£

constexpr int new_sz()
{    
    return 42;
}

constexpr int foo=new_sz();    //fooÊÇÒ»¸ö³£Á¿±í´ïʽ

ΪÁËÄÜÔÚ±àÒë¹ý³ÌÖÐËæʱչ¿ª£¬constexprº¯Êý±»ÒþʽµØÖ¸¶¨ÎªÄÚÁªº¯Êý¡£

NOTE£ºconstexprº¯Êý²»Ò»¶¨·µ»Ø³£Á¿±í´ïʽ¡£

°ÑÄÚÁªº¯ÊýºÍconstexprº¯Êý·ÅÔÚÍ·ÎļþÄÚ

ºÍÆäËûº¯Êý²»Ò»Ñù£¬ÄÚÁªº¯ÊýºÍconstexprº¯Êý¿ÉÒÔÔÚ³ÌÐòÖжà´Î¶¨Òå¡£²»¹ý£¬¶ÔÓÚij¸ö¸ø¶¨µÄÄÚÁªº¯Êý»òÕßconstexprº¯ÊýÀ´Ëµ£¬ËüµÄ¶à¸ö¶¨Òå±ØÐëÍêÈ«Ò»Ö¡£Òò´Ë£¬ÄÚÁªº¯ÊýºÍconstexprº¯Êýͨ³£¶¨ÒåÔÚÍ·ÎļþÖС£

5.3 µ÷ÊÔ°ïÖú

Á½ÏîÔ¤´¦Àí¹¦ÄÜ£ºassertºÍNDEBUG

assertÔ¤´¦Àíºê

assertºê³£ÓÃÓÚ¼ì²é¡°²»ÄÜ·¢Éú¡±µÄÌõ¼þ¡£

assert(expr);

 Èç¹ûexprΪ¼Ù£¬assertÊä³öÐÅÏ¢²¢ÖÕÖ¹³ÌÐòÖ´ÐУ¬Èç¹ûΪÕ棬assertʲôҲ²»×ö¡£

 NDEBUGÔ¤´¦Àí±äÁ¿

assertµÄÐÐΪÒÀÀµÓÚÒ»¸öÃûΪNDEBUGµÄÔ¤´¦Àí±äÁ¿µÄ״̬¡£Èç¹û¶¨ÒåÁËNDEBUG£¬ÔòassertʲôҲ²»×ö£¬Ä¬ÈÏÇé¿öÏÂûÓж¨ÒåNDEBUG¡£

¿ÉÒÔʹÓÃ#defineÓï¾ä¶¨ÒåNDEBUG£¬´Ó¶ø¹Ø±Õµ÷ÊÔ״̬¡£

 6¡¢º¯ÊýÖ¸Õë

º¯ÊýÖ¸ÕëÖ¸ÏòµÄÊǺ¯Êý¶ø·Ç¶ÔÏ󡣺ÍÆäËûÖ¸ÕëÒ»Ñù£¬º¯ÊýÖ¸ÕëÖ¸ÏòijÖÖÌض¨ÀàÐÍ¡£º¯ÊýµÄÀàÐÍÓÉËüµÄ·µ»ØÀàÐͺÍÐβÎÀàÐ͹²Í¬¾ö¶¨£¬Ó뺯ÊýÃûÎ޹ء£

int func(int a, string s);

¸Ãº¯ÊýµÄÀàÐÍÊÇint(int , string).ÒªÏëÉùÃ÷Ò»¸ö¿ÉÒÔÖ¸Ïò¸Ãº¯ÊýµÄÖ¸Õ룬ֻÐèÒªÓÃÖ¸ÕëÌæ»»º¯ÊýÃû¼´¿É¡£

int (*p)(int ,string )¡¡¡¡//δ³õʼ»¯

 NOTE£º*pµÄÀ¨ºÅ±ØÐë¼ÓÉÏ

ʹÓú¯ÊýÖ¸Õë

µ±°Ñº¯ÊýÃû×÷Ϊһ¸öֵʹÓÃʱ£¬¸Ãº¯Êý×Ô¶¯µØת»»³ÉÖ¸Õë¡£

int (*p)(int ,string )=func;

 ¿ÉÒÔʹÓú¯ÊýÖ¸ÕëÖ±½Óµ÷Óøú¯Êý£¬¶ø²»ÐèÒª½âÒýÓøÃÖ¸Õë¡£

Ö¸Ïò²»Í¬º¯ÊýÀàÐ͵ÄÖ¸ÕëÖ®¼ä²»´æÔÚÏ໥ת»»£¬¿ÉÒÔ¸øº¯ÊýÖ¸Õ븳ֵnullptrºÍ0£¬±íʾָÕëûָÏòÈκÎÒ»¸öº¯Êý¡£

 ÖØÔغ¯ÊýµÄÖ¸Õë

Èç¹û¶¨ÒåÁËÖ¸ÏòÖØÔغ¯ÊýµÄÖ¸Õ룬±àÒëÆ÷ͨ¹ýÖ¸ÕëÀàÐ;ö¶¨Ñ¡ÓÃÄĸöº¯Êý£¬Ö¸ÕëÀàÐͱØÐëÓëÖØÔغ¯ÊýÖеÄijһ¸ö¾«È·Æ¥Åä¡£

º¯ÊýÖ¸ÕëÐβÎ

ºÍÊý×éÀàËÆ£¬ËäÈ»²»Äܶ¨Ò庯ÊýÀàÐ͵ÄÐβΣ¬µ«ÊÇÐβοÉÒÔÊÇÖ¸Ïòº¯ÊýµÄÖ¸Õë¡£¿ÉÒÔÖ±½Ó°Ñº¯Êý×÷Ϊʵ²ÎʹÓ㬴ËʱËü»á×Ô¶¯×ª»»³ÉÖ¸Õë¡£

·µ»ØÖ¸Ïòº¯ÊýµÄÖ¸Õë

½«autoºÍdecltypeÓÃÓÚº¯ÊýÖ¸ÕëÀàÐÍ

×¢Ò⽫decltypeÓÃÓÚº¯ÊýÃûʱ£¬·µ»ØµÄÊǺ¯ÊýÀàÐÍ£¬¶ø·ÇÖ¸ÕëÀàÐÍ£¬Èç¹ûÒª±íʾº¯ÊýÖ¸Õ룬ÐèÒª×Ô¼º¼ÓÉÏ*¡£

 

±êÇ©£º

°æȨÉêÃ÷£º±¾Õ¾ÎÄÕ²¿·Ö×ÔÍøÂ磬ÈçÓÐÇÖȨ£¬ÇëÁªÏµ£ºwest999com@outlook.com
Ìرð×¢Ò⣺±¾Õ¾ËùÓÐתÔØÎÄÕÂÑÔÂÛ²»´ú±í±¾Õ¾¹Ûµã£¬±¾Õ¾ËùÌṩµÄÉãÓ°ÕÕƬ£¬²å»­£¬Éè¼Æ×÷Æ·£¬ÈçÐèʹÓã¬ÇëÓëÔ­×÷ÕßÁªÏµ£¬°æȨ¹éÔ­×÷ÕßËùÓÐ

ÉÏһƪ£ºuva11768 Lattice Point or Not

ÏÂһƪ£º¡¾¹²¶ÁPrimer¡¿19.&lt;3.5&gt; Êý×é-C·ç¸ñ×Ö·û´® Page109