我的问题是基于句子void print(const string& msg = "")
的效果,
与void print(const string& msg)
相比有什么区别,
当我在 main()
中使用 print 函数时,我可以在不为函数 print()
传递参数的情况下调用该函数吗?像 p.print()
?
class Point {
int i, j, k;
public:
Point(): i(0), j(0), k(0) {}
Point(int ii, int jj, int kk)
: i(ii), j(jj), k(kk) {}
void print(const string& msg = "") const {
if(msg.size() != 0) cout << msg << endl;
cout << "i = " << i << ", "
<< "j = " << j << ", "
<< "k = " << k << endl;
}
};
int main() {
Point p, q(1,2,3);
p.print("value of p");
q.print("value of q");
} ///:~
最佳答案
是的,这是默认参数。如果您不提供,将使用一个空字符串。
因此,调用 p.print()
等同于调用 p.print("")
。
关于c++ - 带参数初始化的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598681/