defult value编译阶段的事情缺点:降低代码可读性,不安全具体表现如下:
main.cpp 会替代 a.cpp的申明
a
.h
#ifndef A_H_
#define A_H_
void f(int i
,int j
=0);
#endif
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;
}
转载请注明原文地址: https://win8.8miu.com/read-1499446.html