我需要做这样的事情:
template <typename Matrix_xx>
bool ProcessMatrix<Matrix_xx>::function1(Matrix_xx a) {
int x, y;
// ... some code here ... //
if (Matrix_xx == Matrix_1D) {
a->readFromFile(x);
} else if (Matrix_xx == Matrix_2D) {
a->readFromFile(x, y);
} // ...
}
Run Code Online (Sandbox Code Playgroud)
即,调用不同的函数取决于模板参数.上面的代码不会编译,因为只有Matrix_1D :: readFromFile(int x)和Matrix_2D :: readFromFile(int x,int y).我不想将function1拆分成两个不同的函数,因为会有很多加倍的代码.还有另外一种方法吗?
这可能是一个基本问题,但我不确定使用哪些关键字进行搜索.
是否可以在Java中为返回变量赋值,类似于:
static int a[] = new int[2];
static int f(int i) {
return a[i];
}
static void main() {
f(1) = 0; // <-- this
}
Run Code Online (Sandbox Code Playgroud)
在C/C++中,我可以返回一个指针并稍后为其赋值.由于Java使用引用,我希望上面的代码可以工作.我在这里错过了一些重要的Java概念吗?