国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

c++ - ?? ??? ???. 1?? ?? ???? ????. ?? ??? ??? ???? ?? ??? ????? ???? ? ????.
高洛峰
高洛峰 2017-05-16 13:27:45
0
3
802

?? ?? ?? ?? C++ Primer Plus? 8? ?? 6???.
? ?? ?? ???? ???? ???. ??? int ?? ????? ?? ??? char*[]
int ? double? ???? ??????. ?? ?? ?? ???? ????.
?? ?? ?? ??? ???? ?? ???? ???? ??? ??? ????? ??? ? ??? ??????. ???? ??? ????? ??? ???? ??? ??? ????
????? ??? ????? ???? ? ????

.

?? ???: main.cpp:43:23: ??: 'const char maxn(const char, int)'? ??? ??? 'maxn<const char []>'? ?? ??? ?? ????? ???? ????< ; >const char maxn<const char[]>(const char* x[], int n)

??:

???
高洛峰
高洛峰

擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...

?? ??(3)
洪濤

??: template<> const char **maxn(const char **x, int n);template<> const char **maxn(const char **x, int n);

調(diào)用:cout << "sx[5] max_address: " << (int*)*maxn(sx, 5) << endl;

定義:

template<>
const char **maxn(const char **x, int n)
{
    const char **max_len = x;
    for (int i = 0; i < n - 1; i++)
        max_len = strlen(*max_len) >= strlen(x[i + 1]) ? max_len : &x[i + 1];
    return max_len;
}

你犯了三個(gè)錯(cuò)誤:

  • 特化語法不對(duì)

  • 特化時(shí)兩處T的類型不一致

  • 多處指針沒有解引用


思路:

模板聲明:template<typename T> T maxn(T x, int n);
調(diào)用:maxn(sx, 5)。其中變量sx的類型是const char *[5],即數(shù)組類型。

由于sx是數(shù)組類型,模板形式參數(shù)的形式是T,這里sx會(huì)被隱式轉(zhuǎn)換成指針類型(array to pointer conversion)const char **,即T是const char **

所以特化應(yīng)當(dāng)是
template<> const char **maxn(const char **x, int n);

??: cout << "sx[5] max_address: " << (int*)*maxn(sx, 5) <<

??: ?? ??? ????? ? ?? ??? ??????: ??
  • ????? ??? ????
  • ??? ?? T ??? ??? ???? ???? ??????
  • ???? ???? ????? ??????
????:?? ????? ??: template<typename T> T maxn(T x, int n);
??: maxn(sx, 5). ?? sx? ??? ?? ??? const char *[5]???. ?? ??sx? ?? ????? ??? ?? ????? T ?????. ??? sx? ????? ??? ???? ?????(???? ???? ??) const char ** code>, ? T? const char **???. ?? ????? ????
template<> const char **maxn(const char **x, int n);????? ???. ??PS: ????? ?? ???? ???? ??? ???. ??? T? ?? ??? ??? ? ?? ??? ???? ?? ??? ???? ???? ????. ?? ??? ????? ???? ? ???? ??? ? ????. ??
洪濤

?? ??? ?? ??? maxn ??? ?? n? ???? "?? ?" ??? ???? ??? ?? ??? ??? ?? ???? ??? ?????.

????

? ??? ?? ??? ???? ??????.
?? ??? ?? ??? ???? ??? ?????? ????? vs2017?? ????????.

????
漂亮男人

??? ??? ?? ???????.

????

??? ??:

????