函式引數初始化,使用列表,C語言可以,C 不允許

2021-10-02 08:43:23 字數 1490 閱讀 6197

同樣的列表初始化,c語言不會報錯

#include

intsum

(a,b,c)

int a;

int b;

int c;

intmain()

正常執行

[running] cd "d:\程式\隨筆程式\2023年1月\" && gcc fun.c -o fun && "d:\程式\隨筆程式\2023年1月\"fun

73[done] exited with code=

0 in 6.014 seconds

但是c++會報錯:

#include

using

namespace std;

intsum

(a,b,c)

int a;

int b;

int c;

intmain()

[running] cd "d:\程式\隨筆程式\2023年1月\" && g++ canshuliebiao.cpp -o canshuliebiao && "d:\程式\隨筆程式\2023年1月\"canshuliebiao

canshuliebiao.cpp:3:

9: error:

'a' was not declared in this scope

intsum(a,b,c)

^canshuliebiao.cpp:3:

11: error:

'b' was not declared in this scope

intsum(a,b,c)

^canshuliebiao.cpp:3:

13: error:

'c' was not declared in this scope

intsum(a,b,c)

^canshuliebiao.cpp:3:

14: error: expression list treated as compound expression in initializer [

-fpermissive]

intsum

(a,b,c)

^canshuliebiao.cpp:7:

1: error: expected unqualified-id before '{' token {^

canshuliebiao.cpp: in function 'int main()'

:canshuliebiao.cpp:13:

22: error:

'sum' cannot be used as a function

cout <<

sum(2,

3,4)

;^[done] exited with code=

1 in 1.232 seconds

這是為什麼呢?我現在還不理解

建構函式 引數初始化列表

建立類物件時會自動呼叫建構函式 建構函式不需且不能手動呼叫 預設建構函式 在建立物件時不必給出實參的建構函式。包括無參建構函式和全部引數都有預設值的建構函式。如果使用者沒有定義建構函式,則系統會自動提供乙個預設建構函式,即上述的無參建構函式,函式體為空。當給類中的私有常量定義時,必須通過引數初始化列...

引數初始化列表

1 引數初始化列表 初始化類的成員有兩種方式,一是使用初始化列表,二是在建構函式體內進行賦值操作。對於內建型別,如int,float等,使用初始化類表和在建構函式體內初始化差別不是很大,但是對於類型別來說,最好使用初始化列表,為什麼呢?由下面的測試可知,使用初始化列表少了一次呼叫預設建構函式的過程,...

PHP 函式 引數可預設 引數初始化

public function construct repository null,transformer null public function construct repository null,transformer null 表示 repository transformer 這兩個引數是...