C ++返回字符串的函数执行顺序

时间:2016-11-21 01:20:13

标签: java c++

我有两个函数和类中的变量:

int _identation = 0;

std::string ident(){
    _identation++;
    return "";
}

std::string newLine(){
    std::string text = "\n";
    for(int i = 0; i < _identation; i++){
        text+="\t";
    }
    return text;
}

ident()函数只增加一个变量并返回 std :: string (只是为了允许我将其与字符串内联使用)。

函数 newLine()使用char'\ n'创建一个新行,并放置_identation'\ t'以使下一行递增。

如果它与问题相关,我现在不会使用某种访客设计模式。我尝试在我的代码上执行此操作:

std::string content = "<page>"+ident()+newLine();

但是碰巧我的编译器使newLine()函数先运行并且只在它调用ident()函数之后运行。因此,如果我想在创建新行之前识别我的代码,我必须使用这个表达式:

std::string content = "<page>"+newLine()+ident();

为什么C ++从右侧向左侧读取此行?我还用Java创建了这个精确的程序,JVM从左到右执行这个表达式。

谢谢:)

1 个答案:

答案 0 :(得分:1)

尝试在不同的行中执行它们。

std::string content = "<page>";
content+ident();
content+newLine();