小编And*_*ler的帖子

(C++) docker 容器中的语言服务器

我不确定标题是否适合我的问题,但我想不出更好的。

由于我正在运行 Arch Linux,但正在开发必须在 Debian 和 Ubuntu 上运行的软件(在 C++ 中),我目前正在进行以下设置。我有neovim(因为我真的很喜欢它)和YouCompleteMe这个设置可以在Docker(运行Debian)中运行ycm-server。

现在我想给coc.nvmim一起clangdCCLS,因为它似乎会比搜索更好的用户体验一试YouCompleteMe。我现在想知道是否可以在服务器上运行clangdccl并让coc.nvmim 毫无问题地连接到它。不幸的是,我在 Google 上找不到任何东西,因此我在询问 StackOverflow 社区。

c++ docker neovim clangd

5
推荐指数
0
解决办法
261
查看次数

无法使用base clase rvalue初始化指向子类的指针

我对C++考试中的问题有疑问.我和一位助教有很多争执,我想知道,如果我错过了什么.

给出以下代码:

class Student {
public:
  virtual void checkFinanes() {
    std::cout << "I have no money. \n";
  }
};

class ExonomyStudent : public Student {
public:
  virtual void checkFinances() {
    std::cout << "I am making a lot of money.\n";
  }
};
Run Code Online (Sandbox Code Playgroud)

问题是:

以下代码是否编译?如果是这样,当我需要时,控制台上的输出是什么.如果没有,为什么不呢?

Student student;
student.checkFinances();
EconomyStudent* economyStudent = &student;
economyStudent->checkFinances();
Run Code Online (Sandbox Code Playgroud)

答案应该是:

不编译.无法使用学生rvalue初始化EconomyStudent*.

我知道并理解,不能初始化指向子类的指针和baseclase对象的地址,并且这不能编译.我不明白的是右值.声明rvalue以使答案有效是否真的很重要?我的助教坚持但我不这么认为.你怎么看?

c++ polymorphism pointers

3
推荐指数
1
解决办法
81
查看次数

标签 统计

c++ ×2

clangd ×1

docker ×1

neovim ×1

pointers ×1

polymorphism ×1