我花了很多时间用Java编程并花了相当多的时间编写c ++,但是我遇到了一个我无法解决的问题.在Java类中,我可以简单地编写以下内容,
public void doOperation(object a)
{
if(a != this)
{
set(a); // just some method that sets this.a = object.a
}
doOperation();
}
public void doOperation()
{
this.a = pow(this.a,3);
}
Run Code Online (Sandbox Code Playgroud)
我在c ++中实现的部分是if语句,我检查参数对象是否等于this.我在c ++中试过这个
object::doOperation(object a)
{
if(a != this)
{
set(a);
}
doOperation();
}
object::doOperation()
{
this->a = pow(this->a,3)
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是"不匹配'运算符!='(操作数类型是'object'和'object*const')".提前感谢任何可以提供帮助的人!
我很难弄清楚如何从const类方法返回non-const对元素的引用std::vector.我想要的一个简单例子是,
template<class T>
class MyClass
{
public:
MyClass : myVec(3)
{
}
T& x() const
{
return *(myVec.data())[0]
}
std::vector<T> myVec;
}
Run Code Online (Sandbox Code Playgroud)
我想要的行为是,我希望能够做到以下几点,
MyClass obj<double>;
obj.x() = 3.3;
assert(obj.x()==3.3)
Run Code Online (Sandbox Code Playgroud)
Eigen给出了相同类型的行为,但我无法弄清楚如何让它工作.