小编Omn*_*ity的帖子

C++继承,是否只​​能拥有共享祖父级类的1个副本

我有一个项目,其中包含一些非常小的类,这些类充当了较大类的最小接口.有时我的对象需要几个这样的接口.有时这些接口共享相同的派生基类.无论如何,我可以构造我的代码,以便我只有一个所有接口共享的派生基类的副本?

这是一个代码示例:

class A {
public:
  virtual void f(int a)=0;
  virtual int g() const {
    return m_inner;
  }
protected:
  int m_inner;
};

class B : public A {
public:
  virtual void f(int a)=0;
  virtual void h(int b) {
    m_stuff = b;
    m_inner = 0;
  }
protected:
  int m_stuff;
};

class C : public A {
public:
  virtual void f(int a)=0;
  virtual int i() const {
    return m_otherstuff;
  }
protected:
  int m_otherstuff;
};

class D : public B, public C { …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance class multiple-inheritance

2
推荐指数
1
解决办法
151
查看次数

Linux命令行....如何从$更改为#?

我正在使用sed编辑器,我意识到我的命令提示符是:

[darkchild @ localhost~] $

我怎样才能改变它,以便以#....结束,这是什么意思?例如:

[darkchild @ localhost~]#

一位朋友告诉我写这个命令#!/ bin/bash但它没有将提示改为#.

有人可以教育我吗?

linux command-line fedora

2
推荐指数
1
解决办法
1671
查看次数

malloc双重自由行为

GNU手册页malloc定义了当free()使用相同的指针(先前由之前分配malloc())调用两次时"发生未定义的行为".

这是什么行为?
我在哪里可以找到有关此类错误的更多信息?

c unix linux malloc gnu

2
推荐指数
1
解决办法
1293
查看次数

为什么 direnv 无法读取我的 zsh/fish/elvish/tcsh 脚本?

当尝试评估文件时,我在完全有效的///脚本中.envrc收到错误“ emulate: command not found”或“ cd: -q: invalid option”或任何数量的各种可能的错误。zshfishelivshtcsh

zsh tcsh fish direnv elvish

2
推荐指数
1
解决办法
1123
查看次数

检查argc的值

我对传递给程序的argc的数量有问题
所以,当我检查argc它不等于2!
需要帮助,我该如何解决这个问题?

C代码段:

if (2 != argc) {
    fprintf(stderr, "Usage: %s <port>\n", argv[0]);
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

c argc

-4
推荐指数
1
解决办法
564
查看次数

标签 统计

c ×2

linux ×2

argc ×1

c++ ×1

class ×1

command-line ×1

direnv ×1

elvish ×1

fedora ×1

fish ×1

gnu ×1

inheritance ×1

malloc ×1

multiple-inheritance ×1

tcsh ×1

unix ×1

zsh ×1