小编Dim*_*ath的帖子

'if'在C++中使用模板

我需要做这样的事情:

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拆分成两个不同的函数,因为会有很多加倍的代码.还有另外一种方法吗?

c++ templates

3
推荐指数
1
解决办法
139
查看次数

在Java中为返回变量赋值

这可能是一个基本问题,但我不确定使用哪些关键字进行搜索.

是否可以在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概念吗?

java reference

2
推荐指数
1
解决办法
1143
查看次数

标签 统计

c++ ×1

java ×1

reference ×1

templates ×1