小编Alw*_*ing的帖子

函数返回类型是否会影响过载的选择?

这篇文章中,建议使用以下方法为operator<<定义dump()成员函数的所有类定义函数:

template <typename T, typename charT>
auto operator<< (std::basic_ostream<charT> & str, const T & t) -> decltype(t.dump(str))
{
    return t.dump(str);
}
Run Code Online (Sandbox Code Playgroud)

为什么这个函数模板没有捕获所有类型,包括那些没有定义dump成员函数的类型?我的意思是,是否在选择过载时考虑了函数签名的返回类型部分?

c++ c++11

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

继承基类的成员函数的虚拟说明符

以下代码基于C++模板的第298页上的示例:完整指南.我删除了与我的问题无关的部分.

class Virtual {
  public:
    virtual void foo() {
    }
};

class Base : private Virtual {
  public:
    void foo() {
       std::cout << "Base::foo()" << '\n';
    }
};

class Derived : public Base {
  public:
    void foo() {
       std::cout << "Derived::foo()" << '\n';
    }
};

int main()
{
    Base *p = new Derived;
    p->foo();  // calls Derived::foo()
}
Run Code Online (Sandbox Code Playgroud)

我不明白电话是如何p->foo()结束通话的Derived::foo.更具体地说,静态类型pBase*.Base::foo是非虚拟的.现在,Base私有地继承自'Virtual',它有自己的foo,看起来好像从Base::foo某种程度上得到了virtual …

c++

0
推荐指数
1
解决办法
59
查看次数

这是隐式管道吗?

考虑:

./wordcount.py < war_and_peace.txt | sort -grk 2 | head
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,以下代码也有效并产生相同的输出:

./wordcount.py < war_and_peace.txt sort -grk 2 | head
Run Code Online (Sandbox Code Playgroud)

后一个命令如何解释?管道是否sort隐式发生?

bash ubuntu pipe

0
推荐指数
1
解决办法
40
查看次数

对或错:在没有指针的 OO 语言中,所有对象都是引用

是不是,在没有显式指针的面向对象语言中,所有对象都必须是引用?

\n

这里的引用就像标签中定义的那样:

\n
\n

引用是一个值,它使程序能够间接访问计算机内存或其他存储设备中的特定数据,例如变量或记录。

\n
\n

这是我的推理。考虑一下如果我们将数据结构作为参数传递给函数会发生什么。该数据结构可能很大,因此我们绝对不希望创建副本。在具有显式指针的语言中,我们将传递一个指向数据结构的指针。在没有显式指针的语言中,参数最好隐式地充当指针,并提供对数据结构的间接访问。换句话说,最好有一个参考。

\n

仅当我开始提问时的陈述是错误的时才需要答复。在这种情况下,解释为什么上述推理不合理会对我和未来的读者有所帮助。

\n

pointers programming-languages reference

-13
推荐指数
1
解决办法
249
查看次数

标签 统计

c++ ×2

bash ×1

c++11 ×1

pipe ×1

pointers ×1

programming-languages ×1

reference ×1

ubuntu ×1