引用類型的函數(shù)參數(shù)
向函數(shù)傳遞引用而非大型對象的效率通常更高。 這使編譯器能夠在保持已用于訪問對象的語法的同時傳遞對象的地址。 請考慮以下使用了 Date 結(jié)構(gòu)的示例:
// reference_type_function_arguments.cppstruct Date{short DayOfWeek;short Month;short Day;short Year;};// Create a Julian date of the form DDDYYYY// from a Gregorian date.long JulianFromGregorian( Date& GDate ){static int cDaysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };long JDate = 0;// Add in days for months already elapsed.for ( int i = 0; i < GDate.Month - 1; ++i )JDate += cDaysInMonth[i];// Add in days for this month.JDate += GDate.Day;// Check for leap year.if ( GDate.Year % 100 != 0 && GDate.Year % 4 == 0 )JDate++;// Add in year.JDate *= 10000;JDate += GDate.Year;return JDate;}int main(){}前面的代碼顯示通過引用傳遞的結(jié)構(gòu)的成員是通過成員選擇運(yùn)算符 (.) 訪問的,而不是通過指針成員選擇運(yùn)算符 ( 主站蜘蛛池模板: 丹阳市| 沁源县| 拜泉县| 江油市| 青海省| 湘乡市| 凤庆县| 彭泽县| 安吉县| 元朗区| 大洼县| 永顺县| 剑阁县| 武汉市| 滦平县| 太白县| 昌江| 萨嘎县| 乐至县| 尼木县| 阳曲县| 长治市| 通河县| 连江县| 周宁县| 乐安县| 徐水县| 杭锦旗| 太仆寺旗| 克拉玛依市| 昌黎县| 容城县| 红桥区| 巴林右旗| 镇平县| 和平县| 隆尧县| 郑州市| 开封市| 临汾市| 平原县|