首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++,表达式不能是函数

C++,表达式不能是函数
EN

Stack Overflow用户
提问于 2016-07-02 13:37:44
回答 2查看 123关注 0票数 1

Expression can not be a function,但我的表达式不是一个函数,而是一个变量。

给我看看我的密码。

代码语言:javascript
运行
复制
class Data {

public:
    Data(int rows, int partid, vector<MatrixXd*> * res, MatrixXd * a)
    {
        _rows = rows;
        _partid = partid;
        _res = res;
        _a = a;
    }

    int _rows;
    int _partid;
    vector<MatrixXd*> * _res;
    MatrixXd * _a;
};

[snippet]    

void * partitionFunc(void * arg)
{
    Data * data = (Data *)arg;
    MatrixXd * m;
    int dim = data->_rows / data->_res->size();
    for (int i = 0; i < dim; i ++)
    {
        for (int j = 0; j < dim; j ++)
        {
            m = (*(data->_res))[data->_partid];
            (*m)(i, j) = data->_a(dim*data->_partid+i, dim*data->_partid+j);
        }
    }
    pthread_exit(NULL);
}

在编译它返回的代码时

代码语言:javascript
运行
复制
In file included from main.cpp:2:0:
solutions.h: In function ‘void* partitionFunc(void*)’:
solutions.h:86:75: error: expression cannot be used as a function
             (*m)(i, j) = data->_a(dim*data->_partid+i, dim*data->_partid+j);
                                                                           ^ 
solutions.h: In function ‘void* partitionFunc(void*)’:
solutions.h:86:75: error: expression cannot be used as a function
             (*m)(i, j) = data->_a(dim*data->_partid+i, dim*data->_partid+j);

但是m是一个矩阵,而(*m)(i, j)是获取行i+1中的值,列j+1。

我该如何避免这样的错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-02 13:42:38

这意味着data->_a不是函数(注意^的位置)。您应该对data->_a执行与m相同的操作,即使用operator*,因为它是指向MatrixXd的指针。

代码语言:javascript
运行
复制
(*m)(i, j) = (*data->_a)(dim*data->_partid+i, dim*data->_partid+j);
票数 0
EN

Stack Overflow用户

发布于 2016-07-02 13:41:36

我甚至看不出你在矩阵中添加一个访问器的方式。此外,除非重载()运算符,否则使用括号是一个函数调用。

那里没有访问数据的方法。您正在尝试使用m作为函数或类来重载()运算符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38160782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档