我可以使用带初始化列表参数的后递增运算符吗?例如这样的事情:
template <class T> struct MyClass
{
MyClass(T& val): myvar(val++) {/*body*/}
protected: T myvar;
};
构造函数主体中的代码是否会受到更改的影响?
最佳答案
是的,你可以。 myvar
成员在递增前的值为 val
。
我们应该考虑 val 将具有支持后增量运算符的类型。
template <class T> struct MyClass
{
MyClass(T val): myvar(val++) {/*body*/}
// ^
protected:
T myvar;
};
MyClass<int> foo( 1 );
// Here myvar will have the value 1
并且不要忘记传递给 MyClass
构造函数的 val
的类型。
关于c++ - 在初始化列表中使用后递增运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17682061/