小编Eva*_*van的帖子

在函数调用中使用构造函数?

我一直在寻找一个很好的解释,为什么/为什么不将struct构造函数作为函数参数使用是合法的.有人可以提供吗?

// Begin simple illustrative example C++ program    
#include<vector.h>

struct Item  
{  
  Item(double data, const int lead)
  : m_grid(data), m_lead(lead) {}

  double m_grid;
  int m_lead;
};

int main()
{
  double img = 0.0;
  int steps = 5;
  std::vector<Item> images;
  for (int i = 0; i < steps; i++)
  {
    img += 2.0;
    images.push_back(Item(img,i));
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的印象是构造函数既没有返回类型也没有声明......

c++ constructor arguments function

9
推荐指数
2
解决办法
5678
查看次数

在C++函数头中初始化变量

我遇到过一些看起来像这样的C++代码(本文简化):

(这是函数原型中的位置someCode.hpp)

void someFunction(const double & a, double & b, const double c = 0, const double * d = 0);
Run Code Online (Sandbox Code Playgroud)

(这里是位于函数体的第一行someCode.cpp#includesomeCode.hpp)

void someFunction(const double & a, double & b, const double c, const double * d);
Run Code Online (Sandbox Code Playgroud)

我可以合法地someFunction使用:

someFunction(*ptr1, *ptr2);
Run Code Online (Sandbox Code Playgroud)

和/或

someFunction(*ptr1, *ptr2, val1, &val2);
Run Code Online (Sandbox Code Playgroud)

其中的变量ptr1,ptr2,val,和val2已经适当定义,val1并且val2不等于零?为什么或者为什么不?

如果它是合法的,这种语法是否优先于重载函数以考虑可选参数?

c++ variables prototype initialization function

5
推荐指数
1
解决办法
1万
查看次数