我有两个函数和类中的变量:
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从左到右执行这个表达式。
谢谢:)
答案 0 :(得分:1)
尝试在不同的行中执行它们。
std::string content = "<page>";
content+ident();
content+newLine();