参数的默认值基于其他参数
argument's default value base on others
我想实现这样的类:
class A{
int a;
int b;
int c;
A():a(),b(),c(){};
A(int ia,int ib,int ic=ia+ib):a(ia),b(ib),c(ic){}; //this is what i need
};
我希望 ic 的默认值是根据 ia 和 ib 计算的,这里的代码在编译时会出错。
我想知道是否有办法得到这样的东西。
谢谢。
只需添加另一个构造函数重载:
A(int ia, int ib)
: a(ia), b(ib), c(ia + ib) {}
A(int ia, int ib, int ic)
: a(ia), b(ib), c(ic) {}
对于更复杂的初始化,可以使用 C++11 委托构造函数避免重复:
A(int ia, int ib)
: A(ia, ib, ia + ib) {}
A(int ia, int ib, int ic)
: a(ia), b(ib), c(ic) {}
您可以简单地使用所需值构建默认构造函数,也可以通过添加另一个构造函数来重载。这些值将在您执行后分配。类似的东西..
A (int ia, int ib, int ic): a(ia), b(ib), c(ic) {}
如果您需要有关设置默认构造函数的进一步帮助,请阅读此链接。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 如何从其他功能C++访问参数?
- C++ 默认参数使用其他参数
- 如何将将参数包作为参数传递给其他模板类的模板类?
- lambda 作为接受其他参数的参数的初始化顺序
- 如何在其他类中使用参数化构造函数制作类的对象?
- 模板参数包如何具有其他尾随参数?
- 在C++单元测试上下文中,抽象基类是否应将其他抽象基类作为函数参数
- 了解'this'或其他参数是否为右值
- 使用其他模板类型参数作为要在函数签名中使用的类型别名声明
- 推断大多数模板对象的参数,但在调用模板函数时对其他对象显式
- 当模板类使用参数包时,如何传递其他模板参数
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 递归回文检查,不使用向量、大小或其他参数
- 将成员函数作为参数传递给其他成员函数 (C++ 11 <function>)
- 依赖于其他模板参数的模板参数
- 传递多个参数的功能,该函数将类包含到其他函数
- 将指针类方法作为参数传递给其他类方法C
- 如果创建支持返回可变参数类型列表的通用模板 API,我应该使用 std::tuple 还是其他东西?
- 如何根据枚举参数返回其他类型