我试图尝试 vim 在启动时加载的自动加载文件。我将 example.vim 文件保存在:
〜/.vim/自动加载/
目录并编写了一个非常简单的函数:
echom "Autoloading..."
function! cpp#running#CompileAndRunFile(commands)
silent !clear
execute "!" . a:commands . " " . bufname("%")
endfunction
function! cpp#running#DebuggersOptions()
" Get the bytecode.
let bytecode = system(a:command . " -E -o " . bufname("%"))
" Open a new split and set it up.
vsplit __Bytecode__
normal! ggdG
setlocal filetype=potionbytecode
setlocal buftype=nofile
" Insert the bytecode.
call append(0, split(bytecode, '\v\n'))
endfunction
Run Code Online (Sandbox Code Playgroud)
但我想以编程方式强制重新加载 Vim 已加载的自动加载 example.vim 文件,而不打扰用户。原因是我希望程序员在运行时可以更改函数的行为并加载最新修改的函数。
我怎样才能做到这一点 ?
谢谢。
我正在尝试使用朋友功能并编写以下内容:
#include <iostream>
using namespace std;
class Comp {
private:
double r,i;
public:
Comp(){
r = 10.5;
i = 25.1;
}
friend ostream& operator <<(ostream& write, Comp & comp);
};
ostream& operator << (ostream& write, Comp& comp){
write << comp.r << ": " << comp.i;
return write;
}
int main(int argc, char const *argv[]) {
/* code */
Comp comp;
cout << comp;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以一个问题出现了(因为我不是c ++专家刚开始学习c ++),为什么cout可以访问类Comp的私有成员.因为cout没有在课堂上宣布,所以也不是班级的朋友.那么什么机制允许通过作为ostream类的对象的cout访问类的私有成员.
基本上我要问的是,其他类的对象(ostream类cout的对象)如何能够访问其他类Comp的私有变量而不是该类的朋友或成员.谢谢.