小编Sac*_*han的帖子

隐藏私有的重载虚拟功能?

我有一个类层次结构,其工作方式大致如下:

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)

c++ inheritance g++ clang++

9
推荐指数
1
解决办法
981
查看次数

使用Vim命令中的当前目录

对于我的Haskell程序,我知道路径中的可执行文件名与我当前目录的名称相同.现在我想创建一个这样的映射:

:map <leader>rr :!curdir()<cr>
Run Code Online (Sandbox Code Playgroud)

但是,我所知道的唯一命令是getcwd(),它给了我整个路径,而不仅仅是目录的名称.

有没有一种简单的方法来只提取目录的名称?

vim

8
推荐指数
1
解决办法
3235
查看次数

fork to shell脚本并使用Haskell终止原始进程

我目前正在编写一个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)

我做错了什么/我该怎么办?

haskell fork process

5
推荐指数
1
解决办法
557
查看次数

标签 统计

c++ ×1

clang++ ×1

fork ×1

g++ ×1

haskell ×1

inheritance ×1

process ×1

vim ×1