首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用函数

调用函数
EN

Stack Overflow用户
提问于 2011-01-21 05:50:52
回答 5查看 272关注 0票数 1

对不起,这一定是我问过的最愚蠢的问题之一,特别是因为我已经调用了一个函数。我调用了一个具有一个返回值的函数,并将该返回值设置为一个变量,但对于另一个返回两个变量的函数,我只想运行该函数并返回值。

我的声明:

代码语言:javascript
运行
复制
string diagraph ( string mono1, string mono2);

调用函数:

代码语言:javascript
运行
复制
cout << diagraph (mono1,mono2);

函数本身:

代码语言:javascript
运行
复制
string diagraph(string mono1, string mono2) {
    string encoded1,encoded2;
    int a,b,c,d,e,f;
    a = 0;
    b = 0;
    while( mono1 != cipherarray[b][c]){
        b++;
        if (b == 5) {
            a = 0;
            b++;
        }
    }
    a = c;
    b = d;


    a = 0;
    b = 0;

    while (mono2 != cipherarray[b][c]){ 
        b++;
        if (b == 5) {
            a = 0;
            b++;
        }
    }

    a = e;
    b = f;
}

错误(与调用函数有关):

代码语言:javascript
运行
复制
C++\expected constructor, destructor, or type conversion before '<<' token 
 expected `,' or `;' before '<<' token 

该函数未完成,但它将返回2个字符串

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-01-21 05:57:24

首先,我在该函数中看不到任何返回语句。其次,您不能从一个函数返回两个值。您可以返回单个字符串(正如您的函数定义所说的那样),也可以修改传入的值(只要它们是引用或指针)。

编辑:详述

如果你想修改传入的值,它们需要是引用或指针。这是因为C++中的默认行为是按值传递参数(复制),因此在函数外部看不到对函数参数的任何更改。但是,如果参数是引用/指针,则可以更改它们已经指向的内容(如果您想更改原始指针所指向的内容,则可以更改指向指针的指针,例如,不是突变,而是对新值/对象的赋值)。

票数 0
EN

Stack Overflow用户

发布于 2011-01-21 06:02:03

检查cout << diagraph (mono1,mono2);上面的代码行,确保没有漏掉尾随的分号,或者没有留下一个打开的括号。

票数 1
EN

Stack Overflow用户

发布于 2011-01-21 05:59:49

尝试编译和运行您的代码时,只会给我一个关于非void语句结束的警告。

我建议至少在函数完成之前添加一个占位符返回值,比如return "";

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

https://stackoverflow.com/questions/4753040

复制
相关文章

相似问题

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