函式原型(C++學習筆記 7)
C語言中函式原型的宣告(C++中也類似)
1、“先定義,後呼叫”
比如說把要被呼叫的函式放在main( )函式前面,符合 “先定義,後呼叫”的原則。這樣在編譯時,當主調函式中進行函式呼叫時,編譯器已經知道該函式需要哪些引數、返回值的型別是什麼。但是把main( )函式放到最後的做法使程式的可讀性較差。
2、“先呼叫,後定義”
當 “先呼叫,後定義” 時,必須在函式呼叫前進行函式說明,以使編譯器能夠檢查對函式的呼叫是否正確。
在C中,如果函式呼叫的位置在函式定義之前,則應在函式呼叫之前對所呼叫的函式作一個宣告,C語言建議採用函式原型宣告。
函式宣告也稱為函式原型,函式宣告的一般形式為:
返回值型別 函式名(形式引數表);
注意:函式宣告是一條語句,因此必須以分號結尾。例如,對max函式進行宣告的語句可以為:int max( int, int ); 或 int max( int ix, int iy);
相關推薦
函式原型(C++學習筆記 7)
C語言中函式原型的宣告(C++中也類似) 1、“先定義,後呼叫” 比如說把要被呼叫的函式放在main( )函式前面,符合 “先定義,後呼叫”的原則。這樣在編譯時,當主調函式中進行函式呼叫時,編譯器已經知道該函式需要哪些引數、返回值的型別是什麼。但是把main( )函式放到最後的做法使程式
函式的過載(C++學習筆記 9)
C語言不允許過載 在傳統C語言中,函式名必須是唯一的,也就是說不允許出現同名的函式, 例如,當要求編寫求整數、長整型數和雙精度數的二次方的函式時,若用C來處理,必須編寫3個函式,這3個函式的函式名不允許同名。例如: Isquare( int i ); //求整數的二次方
帶有預設引數的函式(C++學習筆記 8)
例如,有一個函式原型說明為: int special( int x=5, float y=5.3 ); 則x與y的預設引數值分別為5與5.3。 special (100, 79.8 ) //x=100,y=79.8 special(25) //相當於special( 25, 5.3
記憶體管理函式(C++學習筆記 14)
一、C語言中的記憶體管理函式 記憶體分配函式主要有malloc( )和calloc( ),記憶體釋放函式是free( )。 這兩類函式的原型在stdlib.h中,要使用這些函式時,首先要用檔案包含: #include"stdlib.h" 或#include<stdli
派生類的建構函式和解構函式(C++學習筆記 32)
引入繼承的目的:①派生類繼承了基類的成員,實現了原有程式碼的重用。②實現程式碼的擴充,只有在派生類中通過新增新的成員,加入新的功能,類的派生才有實際意義。 基類的建構函式和解構函式不能被繼承,在派生類中,如果對派生類新增的成員進行初始化,就需要加入派生類的建構函式,同時,對所有從基類
拷貝建構函式(C++學習筆記 25)
一、拷貝建構函式的基本概念 拷貝建構函式是一種特殊的建構函式。其形參是本類物件的引用。 拷貝建構函式的作用:在建立一個新物件時,使用一個已經存在的物件去初始化這個新物件。例如: Point p2(p1); 其作用是,在建立新物件p2時,用已經存在的物件p1去
向函式傳遞物件(C++學習筆記 24)
一、使用物件作為函式引數 在向函式傳遞物件時,是通過 “ 傳值呼叫 ” 傳遞給函式的,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。因此函式中對物件的任何修改均不影響呼叫該函式的物件(實參)本身。 例 1 :使用物件作為函式引數 #include<iostream
解構函式(C++學習筆記 19)
一、什麼是解構函式? 解構函式也是一種特殊的成員函式。它執行與建構函式相反的操作,通常用於執行一些清理任務,如釋放分配給物件的記憶體空間等。 二、解構函式的特點是什麼? 1、解構函式名與類名相同,但它前面必須加一個波浪號(~)。 2、解構函式不返回任何值。在定義解構函式時,是不能
建構函式(C++學習筆記 17)
一、建構函式 建構函式是屬於某一個類的 類是一種抽象的資料型別,它不佔儲存空間,不能容納具體的資料,因此在類宣告中不能給資料成員賦初值。 例如,下面的描述是錯誤的: class Complex{ double real=0; //錯誤,在類宣告中不能給資料成員
const修飾符、const與指標一起使用(C++學習筆記 6)
一、 在C++中使用const修飾符來定義常量。(const來自單詞constant,是常量的意思) 用法:const 型別 常量名 = 表示式; 例如:const int LIMIT = 100; 這個常量LIMIT是有型別的,佔用儲存單元,有地址,可以用指標指向它,但不能修改它。
C++的靈活的區域性變數宣告(C++學習筆記 5)
C語言中根據變數的作用域可以把變數分為兩種:區域性變數和全域性變數。 區域性變數:在一個函式內部定義的變數是內部變數,它只在本函式範圍內有效,即只有在本函式內才能使用它們,在此函式外是不能使用這些變數的,這樣的變數成為區域性變數。 區域性變數的特點: (1)主函式main中定義的變數也是
認識C++(C++學習筆記 4)
目前主要參考的書是《C++ Primer》第三版 學校上課用的是《C++面向物件程式設計教程》第三版 一、 C++的起源 C語言的侷限性: 型別檢查機制相對較弱,使得程式中的一些錯誤不能再編譯階段由編譯器檢查出來 幾乎沒有支援程式碼重用的語言結構
C++的終端輸入和輸出(C++學習筆記 3)
C++和C的輸入輸出方面的不同 在C中輸入和輸出,常使用函式scanf和printf。 C++除了可以照常使用這兩個函式進行輸入和輸出外,還增加了標準輸入流物件cin(念 see-in)和標準輸出流物件cout(念 see-out) scanf("%d",i); printf
C++陣列(C++學習筆記 2)
陣列(array) 陣列是相同型別元素的集合。例如,整型陣列,字串陣列等。 陣列是一種順序容器,它包含單一型別的元素。 C++資料型別 c++中資料型別分為兩種:預定義型別和自定義資料型別。 預定義型別:即預先定義的基本內建資料型別。 自定義資料型別:允許使用者進行資料型別的
C++檔案輸入和輸出(C++學習筆記 1)
為了開啟一個檔案供輸入或輸出,標頭檔案需要包括 #include<iostream> 和#include<fstream> iostream庫除了支援終端輸入輸出,也支援檔案的輸入和輸出。 1. 開啟一個輸出檔案 必須宣告一個ofstream型別的物件,來
引用(C++學習筆記 15)
一、引用的作用 建立引用的作用是為變數另起一個名字,變數的引用通常被認為是變數的別名。 對變數宣告一個引用,並不另外開闢記憶體單元,變數 i 和引用 j 佔用記憶體的同一位置,當 i 變化時,j 也隨之變化, 反之亦然。 二、引用的格式 型別 &引用名=已定義的變數名;
強制型別轉換(C++學習筆記 13)
無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變數的資料長度進行臨時性轉換,這並不改變該變數的型別。 一、 C語言中強制型別轉換的一般形式為: (資料型別)表示式 例1: 求x與2進行取餘運算。 (int) x % 2 因為取餘運算的運算元必須是整數,如果x是實數
指標(C++學習筆記 12)
記憶體將每個位元組作為一個儲存單元,並給每個儲存單元指定一個編號作為其地址。 系統給不同資料型別分配的儲存空間大小是不一樣的,如:整型變數分配2個位元組的儲存空間;double型變數分配8個位元組;字元型變數分配1個位元組。 變數的地址:因為一個變數的儲存空間要連續佔用若
指標與陣列(C++學習筆記 11)
一、指向陣列元素的指標 1、定義指向陣列元素的指標 每個陣列元素相當於一個變數,所以定義指向陣列元素的指標與定義指向變數的指標方法相同。例如: int ia[5]; /*定義包含5個數組元素的整型陣列ia*/ int *pi; /*定義指向整型變數的指標變數pi*/ p
作用域運算子 “::”(C++學習筆記 10)
通常情況下,如果有兩個同名變數,一個是全域性的,另一個是區域性的,那麼區域性變數在其作用域內具有較高的優先權,它將遮蔽全域性變數。 如果希望在區域性變數的作用域內使用同名的全域性變數,可以在該變數前加上“::”,此時::avar代表全域性變數,“::”稱為作用域運算子。 例1: 全域