c 對c的拓展 函式過載

2022-10-09 13:09:10 字數 538 閱讀 4470

函式過載:c++中函式名可相同,可有多個函式名相同的函式存在(過載:名字相同意義不同)

本質:c++編譯器根據型別來修飾函式

條件:1、同一作用域

2、引數個數、型別、順序不同

注意:1、返回值型別不能作為過載條件

2、預設引數可存在二義性,存在二義性時報錯,要避免其他二義性行為

# include

using namespace stu;

namespace a{   //不在同一作用域不可過載

void fun(int a){

void fun(int a){

void fun(int a,int b){   //不同引數個數可過載

void fun(double a){  //型別不同可過載

void fun(int a,double b){   //順序不同可過載 

void fun(double a,int b){

void fun(int a,int b=1){   //呼叫時報錯 與fun(int a,int b)發生二義性

C 對C的函式拓展

一,內聯函式 1.內聯函式的概念 c 中的const常量可以用來代替巨集常數的定義,例如 用const int a 10來替換 define a 10。那麼c 中是否有什麼解決方案來替代巨集 片段呢?c 中推薦使用內聯函式代替巨集 片段,c 中使用inline關鍵字宣告內聯函式。注意 內聯函式宣告時...

C 對C的拓展

目錄 一 bool型別關鍵字 二 引用 三 輸入輸出 四 函式引數 五 string類 六 左值 c 在c語言的基礎型別上新增了布林型別 bool bool可取的值有兩個 true false,占用乙個位元組。true代表真值,編譯器內部用1來表示 false代表非真值,編譯器內部用0來表示。inc...

C 對C的函式拓展 預設引數

1 c 中可以在函式宣告時為引數提供乙個預設值,當函式呼叫時沒有指定這個引數的值,編譯器會自動用預設值代替 void myprint int x 3 2函式預設引數的規則 只有引數列表後面部分的引數才可以提供預設引數值 一旦在乙個函式呼叫中開始使用預設引數值,那麼這個引數後的所有引數都必須使用預設引...