参数缺省

it2022-07-02  157

defult value编译阶段的事情缺点:降低代码可读性,不安全具体表现如下: main.cpp 会替代 a.cpp的申明 a.h #ifndef A_H_ #define A_H_ void f(int i,int j=0); #endif /* A_H_ */ a.cpp #include "A.h" #include <iostream> void f(int i,int j) { std::cout<<i<<j<<std::endl; } main.cpp #include <iostream> using namespace std; void f(int i,int j=10); int main() { f(10); } 包含a.h和不包含结果不一样 #include <iostream> using namespace std; //重构 void print(int i) { cout<<i<<endl; } void print(int i,int j) { cout<<i<<j<<endl; } //缺省值,从左到右 void f(int i=0,int j=0) { cout<<i<<j<<endl; } int main() { //重构 print(1); print(1,2); f(); f(1); return 0; }

最新回复(0)