小编And*_*ong的帖子

是否可以覆盖(隐藏)非虚方法,但仍然可以从子类中显式调用它?

是否可以覆盖(隐藏)非虚方法,但仍然可以从子类中显式调用它?它可以工作,但我不知道它是特定于编译器还是应该因某种原因而避免.(我没想到它会根据"隐藏"功能的术语而起作用.)

class A
{
public:
    void foo()
    {
        cout << "A::foo()" << endl;
    }
};

class B : public A
{
public:
    void foo()
    {
        cout << "B::foo()" << endl;
        A::foo();
    }
};

int main()
{
    B b;
    b.foo();
}
Run Code Online (Sandbox Code Playgroud)

编辑

这可能会更多地关注这个问题.

父的非虚方法在我们无法改变的基础设施库中,但是我们需要派生一个隐藏的类(不是"覆盖",正如我现在所学到的)一个支持增强它的功能(和在途中明确地调用父元素.也就是说,派生类需要使用这个"扩充"函数来代替父类.这是隐藏父函数的有效方案吗?

c++ overriding virtual-functions

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

如何从分叉的存储库中仅针对某些文件创建 PR,但对它们进行所有提交?

太长了;博士

\n
    \n
  • 我已经分叉了一个存储库,并对许多文件进行了多次提交,所有这些都在主分支上。
  • \n
  • 现在我想为所选文件的所有提交创建拉取请求,以发送回原始存储库的作者。例如,我想发回一些改进,但不发回我添加的文件。
  • \n
  • 我不在乎所有的提交是否都会被压缩成一个全新的提交。
  • \n
\n

我尝试过的...

\n

我职业生涯的大部分时间都在使用 Perforce,并且仍在习惯 git,所以我想我要么没有意识到我的场景与以下帖子中的场景不匹配,要么我错过了一些隐式步骤对于普通 git 用户来说是显而易见的,但对我来说却不是。

\n\n

我所看到的...

\n

似乎每当我精挑细选时,我最终都会得到一个没有任何更改的分支(不过这是有道理的,因为它们已经致力于掌握,对吗?\xe2\x80\x94那么我如何创建这个“主题分支”我看到有人提到了?)现在我运行了几个我不完全理解的命令(例如git remote add ...),并且还可能将原作者的存储库与我的分叉存储库互换,所以它变得很难说是否因为我弄乱了我的环境而无法正常工作。

\n

打扫干净

\n

@Omer 的回答效果很好。然后我做了一个

\n
git reset --hard HEAD\n
Run Code Online (Sandbox Code Playgroud)\n

清理。原作者合并了 PR,我同步到它:

\n
git remote add upstream git://github.com/<author>/<repo>.git\ngit pull upstream master\n
Run Code Online (Sandbox Code Playgroud)\n

git pull-request git-cherry-pick git-fork

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

为什么这个输出看起来不确定?(它是sprintf,printf还是十六进制文字的语法?)

TL;博士

为什么每次运行此代码时都会得到不同的输出(Ideone):

#include <iostream>
#include <stdio.h>
using namespace std;

int main() {

    const char* _user = "FOO";
    const char* _password = "BAR";

    char login[21];
    sprintf(login,
        "\x15\x00\x01%-8s%-10s",
        _user,
        _password);

    for (int i = 0; i < 21; i++) {
        printf(" %02x", login[i] & 0xff);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但不是这个代码(Ideone):

#include <iostream>
#include <stdio.h>
using namespace std;

int main() {

    const char* _user = "FOO";
    const char* _password = "BAR";
    const char* _session = "ABCDEFGHIJ";
    int _expectedSeq = …
Run Code Online (Sandbox Code Playgroud)

c++ debugging printf hex

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

在PHP中输入变量的字符串

如何将变量与字符串组合并生成值

<?php
$bun1="home";
$x="1";
$h= "$"."bun".$x;
echo $h;
?>
Run Code Online (Sandbox Code Playgroud)

我想打印$ bun1与结果回家,但$ bun1中的"1"是变量$ x

php

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

io.vavr.control.Validation如何在这些示例中起作用?

我在理解验证库时遇到了一些麻烦io.vavr.control.Validation.有可能提出过于宽泛的问题,我确实有几个子问题 - 但我相信它们是密切相关的,并且会拼凑起来帮助我理解使用这种验证机制的正确方法.

我从这里的例子开始:https://softwaremill.com/javaslang-data-validation.

Validation<String, ValidRegistrationRequest> validate(RegistrationRequest request) {
   return combine(
       validateCardId(request.getCardId()),
       validateTicketType(request.getTicketType()),
       validateGuestId(request.getGuestId())
)
       .ap(ValidRegistrationRequest::new)
       .mapError(this::errorsAsJson);
}

private Validation<String, Card> validateCardId(String cardId) {
    // validate cardId
    // if correct then return an instance of entity the cardId corresponds to
}

private Validation<String, TicketType> validateTicketType(String ticketType) {
    // validate ticketType
    // if known then return enumeration representing the ticket
}

private Validation<String, Guest> validateGuest(String guestId) {
    // validate guestId
    // if correct then return …
Run Code Online (Sandbox Code Playgroud)

java generics validation currying vavr

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

.exceptionally() 会捕获从嵌套 future 中抛出的异常吗?或者哪里是正确的放置 .exceptionally()

foo.thenCompose(fooResponse -> {
  ...
  return bar.thenCompose(barResponse -> {
    ...
  });
}).exceptionally(e -> {
  ...
});
Run Code Online (Sandbox Code Playgroud)

这也会.exceptionally()捕获从嵌套bar.thenComposelambda 内部抛出的异常吗?或者我需要这样写:

foo.thenCompose(fooResponse -> {
  ...
  return bar.thenCompose(barResponse -> {
    ...
  }).exceptionally(nestedE -> {
    ...
  });
}).exceptionally(e -> {
  ...
});
Run Code Online (Sandbox Code Playgroud)

然后又吐了?

java future exception java-8 completable-future

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

有没有办法定义"备用"字符串终止符(除了空终止符,\ 0)

我不一定要这样做,但我很好奇.在C/C++是有办法来定义串的终止子比空终止?例如,是否可以写这个,

char* str = "123456|ABCDEF";

char* foo = str;
char* bar = strstr(str, "|") + 1;

// do something here to define '|' as a terminator

std::cout << foo << std::endl;
std::cout << bar << std::endl;

// undo pipe-as-terminator definition
Run Code Online (Sandbox Code Playgroud)

得到输出,

123456
ABCDEF
Run Code Online (Sandbox Code Playgroud)

如果不能,那么有没有任何办法让指针到缓冲区的部分,分配/复印内存,无需修改缓冲区,覆盖|s到\0S'

c c++ string performance null-terminated

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

用`new`实例化泛型时,包含类型参数之间是否存在实际差异?

我开始学习Java了,在我的程序中它出现了

Stack<Integer> s = new Stack<Integer>();
Run Code Online (Sandbox Code Playgroud)

Stack<Integer> s = new Stack<>();
Run Code Online (Sandbox Code Playgroud)

Stack<Integer> s = new Stack();
Run Code Online (Sandbox Code Playgroud)

所有编译并产生我期望的输出.

有什么实际区别吗?哪个更受欢迎?

java generics syntax

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

尽管lambda的返回类型,`thenApply()`与`thenCompose()`是不明确的是什么情况?

我正在学习CompletableFutures.

我不是在问之间的区别thenApply()thenCompose().相反,我想问一下感觉不对的代码"气味",以及实际可能证明它的理由.

CompletableFuture我到目前为止看到的用法来看,似乎你从来没有这样:

CompletableFuture<String> foo = getSomething().thenApply((result) -> { ... });
Run Code Online (Sandbox Code Playgroud)

这不是:

String foo = getSomething().thenCompose((result) -> { ... });
Run Code Online (Sandbox Code Playgroud)

要返回未来,您必须使用thenCompose(),否则thenApply().

然而,从经验来看,语言并没有设法消除每次都做出这种明确的选择,这似乎很奇怪.例如,是否有一个单一的方法,thenDo()其返回类型是从returnlambda中推断出来的(在编译期间)?它可能然后被给予thenApplythenCompose在编译时般的性能以及.

但我确信有一个很好的理由采用不同的方法,所以我想知道原因.

  • 是因为在Java中从lambda推断返回类型是危险还是不可能?(我也是Java的新手.)

  • 是不是因为有一种情况,单个方法确实不明确,唯一的解决方案是使用单独的方法?(我想象可能,嵌套CompletableFuture或复杂的界面和泛型.)如果是这样,有人可以提供一个明确的例子吗?

  • 是出于其他原因还是有记录的推荐?

java lambda language-design completable-future

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

如果为null或空,则采用Optional <String>并返回默认字符串的惯用"功能"方法是什么,否则是修改后的字符串?

什么是惯用的,最小的(也许是功能性的)方式来说Optional<String>和说,

  • 返回默认字符串,例如, true如果为null或空,或
  • 返回修改后的字符串,例如 query_str = <str>否则.

当然,这是我笨重的尝试:

Optional<String> queryMaybe; // Given.
String clause = "true";
if (queryMaybe.isPresent() && !queryMaybe.get().isEmpty()) {
  clause = "query_str = " + queryMaybe.get();
}
Run Code Online (Sandbox Code Playgroud)

但是我的同事们编写的周围代码似乎使用了很多,我认为可能被称为"功能"样式链接.例如,

String externalTraffickedStateClauses = StringUtils.defaultIfBlank(
    externalTraffickedStateQueries.stream().collect(Collectors.joining(" OR ")), "false");
Run Code Online (Sandbox Code Playgroud)

SORTORDERBY orderBy = orderByMaybe.orElse(DEFAULT_ORDER_BY);
Run Code Online (Sandbox Code Playgroud)

所以,我想,以符合自己的风格,就像我能,stream,filter,orElse等不知道这是因为我从C++背景的还是因为我的学习收获是已经过时,但是这仍然是很对我不熟悉

java functional-programming coding-style optional

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