我有一个类层次结构,其工作方式大致如下:
class A
{
protected:
virtual void f(int) = 0;
};
class B
{
protected:
virtual void f(char*) = 0;
};
class DA : A
{
private:
virtual void f(int) override {}
};
class DB : public DA, B
{
private:
virtual void f(char*) override {}
};
Run Code Online (Sandbox Code Playgroud)
当我尝试使用clang(或gcc,就此问题)编译时,它会给我警告
<source>:22:18: warning: 'DB::f' hides overloaded virtual function [-Woverloaded-virtual]
virtual void f(char*) override {}
^
<source>:16:18: note: hidden overloaded virtual function 'DA::f' declared here: type mismatch at 1st parameter ('int' vs 'char *') …Run Code Online (Sandbox Code Playgroud) 对于我的Haskell程序,我知道路径中的可执行文件名与我当前目录的名称相同.现在我想创建一个这样的映射:
:map <leader>rr :!curdir()<cr>
Run Code Online (Sandbox Code Playgroud)
但是,我所知道的唯一命令是getcwd(),它给了我整个路径,而不仅仅是目录的名称.
有没有一种简单的方法来只提取目录的名称?
我目前正在编写一个Haskell程序,它执行一些初始化工作,然后调用ncmpcpp.我想要做的是启动ncmpcpp并终止Haskell程序,这样只剩下ncmpcpp(可选地,程序可以继续在后台运行,只要它是不引人注意的)
但是,即使我能够启动ncmpcpp,我也无法与它进行交互.我看到它的输出,但输入似乎是不可能的.
我目前正在做的是:
import System.Process (createProcess, proc)
...
spawnCurses :: [String] -> IO ()
spawnCurses params = do
_ <- createProcess (proc "ncmpcpp" params)
return ()
Run Code Online (Sandbox Code Playgroud)
我做错了什么/我该怎么办?