c++ - 带参数初始化的函数

标签 c++ function

我的问题是基于句子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/

相关文章:

c - 弹丸运动程序 : What's wrong with this program?

python - 如何从该列表中找到范围、平均值和前三个值而不出现类型错误?

c++ - 在 std::function 和 lambda 中使用自动说明符

c++ - C++ 中的位移位

c++ - 在返回对象的函数调用和对该对象的方法调用之间是否存在序列点?

python - 使用 pycparser 解析 C 结构中的结构?

c++ - MPI_File_write_at() 是否用零初始化文件?

c++ - 指向多个参数的函数指针 C++11 std::function:模板化 GetProcAddress

python - 将一个函数插入到 Flask 中的多个蓝图中

c - 限制运行的线程