小编Sum*_*udu的帖子

c ++问题与继承类中的函数重载

这可能是一个noob问题,抱歉.我最近遇到了一个奇怪的问题,试图在c ++,函数重载和继承中搞乱一些高级的东西.

我将展示一个简单的例子,只是为了证明这个问题;

有两个班,classAclassB如下;

class classA{
    public:
        void func(char[]){};    
};

class classB:public classA{ 
    public:
        void func(int){};
};
Run Code Online (Sandbox Code Playgroud)

据我所知classB,现在应该拥有两个func(..)函数,由于参数不同而重载.

但是在主方法中尝试这个时;

int main(){
    int a;
    char b[20];
    classB objB;
    objB.func(a);    //this one is fine
    objB.func(b);    //here's the problem!
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它给出了错误,因为void func(char[]){}; 超类中的方法classA在派生类中是不可见的classB.

我怎么能克服这个?这不是在c ++中如何重载?我是c ++的新手,但在Java中,我知道我可以使用这样的东西.

虽然我已经找到了这个询问类似问题的帖子,但我认为这两个案例是不同的.

c++ inheritance overloading class

42
推荐指数
2
解决办法
2万
查看次数

为什么`std :: string :: find()`在失败时不返回结束迭代器?

我发现的行为std::string::find与标准C ++容器不一致。

例如

std::map<int, int> myMap = {{1, 2}};
auto it = myMap.find(10);  // it == myMap.end()
Run Code Online (Sandbox Code Playgroud)

但是对于一串,

std::string myStr = "hello";
auto it = myStr.find('!');  // it == std::string::npos
Run Code Online (Sandbox Code Playgroud)

为什么不应该失败的myStr.find('!')回报myStr.end(),而不是std::string::npos

由于std::string与其他容器相比,它有些特殊,所以我想知道这背后是否有真正的原因。(令人惊讶的是,我找不到任何人在任何地方对此进行质疑)。

c++ stdstring c++-standard-library

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

自动调整JTable列宽的大小

我需要我的JTable自动重新调整其列宽以适应内容.我发现这个TableColumnAdjuster课非常有用.但是有一个小问题.假设我有5列,其内容非常短.在这种情况下,如果我使用自动调整器,它会根据内容设置前四列宽度,并将所有剩余空间给予最后一列.请看这个例子.

在此输入图像描述

这里是最后一列,Balance给出了所有多余的空间.但是,如果我需要将该空间提供给其中一个中间列,该怎么办呢?在上面的例子中,我需要将该空间分配给第三列,name.我尝试修改TableColumnAdjuster类的adjustColumns()方法.但我无法让它发挥作用.

我尝试了两种方法column.setPreferredWidth()column.setWidth()改变了色谱柱尺寸.但似乎它没有改变任何东西.如何有效地更改a的列大小JTable.如果还有其他替代方案或直接回答我的主要问题,那就更好了.谢谢!

java swing jtable tablecolumn

28
推荐指数
2
解决办法
7万
查看次数

如何更改JTable标题高度?

标题解释了这个问题.我怎么能轻松做到这一点?

java swing jtable jtableheader preferredsize

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

Lambda闭包左值可以作为右值参考参数传递

我发现lvaluelambda闭包始终可以作为rvalue函数参数传递。

请参见以下简单演示。

#include <iostream>
#include <functional>

using namespace std;

void foo(std::function<void()>&& t)
{
}

int main()
{
    // Case 1: passing a `lvalue` closure
    auto fn1 = []{};
    foo(fn1);                          // works

    // Case 2: passing a `lvalue` function object
    std::function<void()> fn2 = []{};
    foo(fn2);                          // compile error

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

情况2是标准行为(我只是std::function为了演示目的而使用a ,但是任何其他类型的行为都相同)。

案例1如何以及为什么起作用?fn1函数返回后关闭的状态是什么?

c++ lambda closures rvalue-reference c++14

16
推荐指数
3
解决办法
329
查看次数

如何将下拉菜单添加到JTable单元格

这可能是之前提出的问题.我在帖子之前搜索了很多,但是找不到任何可接受的.

有人可以告诉我如何做到这一点.我只需要在单击单元格时得到一个下拉菜单,这样我就必须从中选择一个值(作为限制用户选择的方法).

如果有人可以帮助我,我相信它会帮助很多人.有很多类似的问题,但没有任何明确的答案.请回答一下细节.一个例子将非常感谢..

谢谢!

java swing jtable tablecelleditor jcombobox

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

[[maybe_unused]] 属性不起作用

我正在尝试unused parameter使用新的 c++17 属性忽略警告[[maybe_unused]],如下所示。

int main([[maybe_unused]] int argc, char** argv)
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

但我仍然收到warning: unused parameter ‘argc’ [-Wunused-parameter]以下额外警告。

warning: ‘maybe_unused’ attribute directive ignored [-Wattributes]
Run Code Online (Sandbox Code Playgroud)

我正在g++ (GCC) 7.2.0cmake-3.11.3. 我的编译器标志如下。

-std=c++17 -Wall -pedantic -Wextra -Weffc++
Run Code Online (Sandbox Code Playgroud)

我记得以前成功使用过这个属性,但我不知道为什么现在不起作用。有人可以展示我在这里做错了什么吗?

c++ gcc cmake c++17

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

显示日历以在java中选择日期

在其他语言中,如VB,C#,在您希望用户输入日期的情况下,例如在文本框中,我们可以在您点击它时显示日历.因此,用户可以单击相应的日期,该日期将被放入文本框中.

通过这种方式,我们可以摆脱由于日期格式不正确而导致的问题.我需要知道如何在java中实现这一点?

实际上,我需要将它与JTable相结合.有一列需要输入日期.但是用户可以以各种格式输入日期.所以我想到了这样的事情.希望有一种方法可以轻松地做到这一点.

有谁请告诉我如何做到这一点.任何帮助是极大的赞赏..

谢谢.

java swing calendar date jtable

9
推荐指数
3
解决办法
11万
查看次数

将一个类的字段复制到另一个类的相同字段中

我有这个问题.但是我很难解释,因为我不知道使用的确切术语.希望有人能理解.我会试着尽力而为.我觉得这与此有很大关系parsing

说有两个班.在这两个类中我都有一些变量,比如字符串(只是为了简单起见,变量类型可以是任何变量),它们具有相似的名称.

Eg:
    class ClassA{
        String x,y,z;
    }

    class ClassB{
        String x,y,z;
    }
Run Code Online (Sandbox Code Playgroud)

现在,我需要的是,我需要将一个类的变量值的值复制到其他类对应的变量.

Eg:
    ClassA aa=new ClassA();
    ClassB bb=new ClassB();
    //set bb's variables
    aa.x=bb.x;
    aa.y=bb.y;
    aa.z=bb.z;
Run Code Online (Sandbox Code Playgroud)

像那样.

但请注意,我需要的不是上述方法.我希望有一种方法可以编写一个简单的方法,以便它通过传递给它的名称来识别相关变量.然后它会相应地进行值赋值.

我想象的方法是这样的,

void assign(String val){        
    // aa.<val>=val
}
Run Code Online (Sandbox Code Playgroud)

例如,如果您传递bb.xassign(...)方法,那么它将进行aa.x=bb.x分配.

希望这很清楚.必须有更好的方法来解释这一点.如果有人知道,请编辑帖子(+标题)以使其更清晰(但保存我的想法)..

如果有办法实现这一点,请告诉我.

谢谢!

java parsing javabeans dozer

9
推荐指数
3
解决办法
2万
查看次数

将新的内核参数添加到 Yocto 生成的自定义 Linux 映像中

我正在尝试使用Yocto 项目为我的嵌入式设备生成自定义 Linux 映像。

我需要向/etc/sysctl.conf生成的图像添加持久的自定义内核参数。

IE

kernel.core_pipe_limit = 1
Run Code Online (Sandbox Code Playgroud)

/etc/sysctl.conf由基础系统( )procps自带的包生成。但是,我认为在基本系统中编辑不是推荐的方法。Yoctometa/recipes-extended/procps/procps/sysctl.confsysctl.conf

我正在使用一个新层来定义我的自定义配置。我希望有一种方法可以在部署基础层后通过自定义层将补丁应用到基础包。

我怎样才能做到这一点?


我知道如何通过更新/etc/sysctl.conf(或者最好是/etc/sysctl.d/xxx.conf)来持久更改内核变量。我的问题是,如何生成应用了必要更新的 Linux 映像?

linux linux-kernel embedded-linux procps yocto

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