问题列表 - 第9402页

有没有一种正确的方法通过C++引用返回一个新的对象实例?

所以我写了一些代码,我有这样的事情:

class Box
{
    private:
    float x, y, w, h;

    public:
    //...
    Rectangle & GetRect( void ) const
    {
        return Rectangle( x, y, w, h );
    }
};
Run Code Online (Sandbox Code Playgroud)

然后在一些代码中:

Rectangle rect = theBox.GetRect();
Run Code Online (Sandbox Code Playgroud)

哪个在我的调试版本中有效,但在发行版中有"问题"通过引用返回Rectangle - 我基本上得到了一个未初始化的矩形.Rectangle类有一个=运算符和一个复制构造函数.在没有弄清楚为什么会破坏的情况下,我实际上更感兴趣的是通过引用返回(新)对象的正确方法,以便复制分配给变量.我只是傻吗?不应该这样做吗?我知道我可以返回一个指针,然后取消引用,但我不愿意.我的某些部分感觉像按值返回会导致对象的冗余复制 - 编译器是否会解决并优化它?

这似乎是一个微不足道的问题.经过多年的C++编码后,我感到尴尬,我不知道这一点,所以希望有人可以为我清除这一点.:)

c++ return reference object variable-assignment

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

代码重用和重构

重用代码与复制/粘贴的最佳做法是什么?

重用的问题可能是更改重用代码会影响许多其他功能.

这是好的和坏的:好的,如果更改是错误修复或有用的增强.如果其他重用代码意外破坏,因为它依赖于旧版本(或新版本有错误),那就太糟糕了.

在某些情况下,复制/粘贴似乎更好 - 粘贴代码的每个用户都有一个私有副本,它可以自定义而不会产生任何后果.

这个问题是否有最佳实践; 重复使用是否需要水密单元测试?

code-reuse refactoring

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

在构建高效的PHP/MySQL程序时,要遵循哪些经验法则?

几分钟前,我问过在登录时一次执行多个查询是否更好,并将数据保存在会话中,或者根据需要进行查询.我对答案感到惊讶,(根据需要查询).在构建加速性能的PHP/MySQL多用户应用程序时,还有其他好的经验法则吗?

我正在寻找创建最有效应用程序的具体方法.

php mysql performance

6
推荐指数
2
解决办法
697
查看次数

在SSH会话中查找客户端的IP地址

我有一个脚本由一个用SSH登录服务器的人运行.

有没有办法自动找出用户连接的IP地址?

当然,我可以问用户(这是程序员的工具,所以没问题),但如果我发现它会更酷.

linux ssh networking ip-address

151
推荐指数
8
解决办法
18万
查看次数

如何将两个数组的元素等同,而不管条目的顺序如何

我试图计算两个像myArray{a,b,c}和的数组urArray{a,b,c,c}

我想检查两个元素是否都有相同的元素,例如在上面的条件中,第二个数组urArray有一个额外的'c'.

如果代码具有相同的元素,则代码应该能够等同两组数组,并且元素的顺序无关紧要.只是两个数组都应该有相同的元素,即如果一个有两个'c',另一个也应该有两个'c',否则条件是假的.

所以我做的是:

char[] myArray = new char[] {'a','b','c','c'};
char[] urArray = new char[] { 'a', 'b', 'c' ,'a'};
List<char> tmp2 = new List<char>(urArray);

for (int i = 0; i < myArray.Length; ++i)
{
    for (int j = 0; j < urArray.Length; ++j)
    {
        if (myArray[i] == urArray[j])
        {

            Console.WriteLine(urArray[j] + "--> " + "urArray"+"  myArray"+"--> "+myArray[i]);
            tmp2.Remove(urArray[j]);

            urArray = tmp2.ToArray();

        }
        else if (myArray[i] != urArray[j])
        {
            Console.WriteLine(myArray[i] + …
Run Code Online (Sandbox Code Playgroud)

c# arrays comparison equality

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

Firefox崩溃渲染大型html表(20,000多行)

我知道渲染一个这么大的表正在推动任何浏览器的极限.但是,我很好奇为什么一个非常大的表(20,000多行)会崩溃Firefox,而所有其他浏览器都会相对较快地渲染它.

我正在使用ASP.NET并使用Response.Write将表html直接写入缓冲区.我最初认为可能是因为我生成了一些格式错误的HTML,所以我决定用gridview重新创建表格.事实证明这会使Firefox更慢,但在其他主流浏览器中只有稍慢的渲染时间.

Firefox创建第一个(大约)10,000行就好了.问题是在此之后,它会非常缓慢地添加剩余的行,直到应用程序变得无响应,同时使用越来越多的内存(300MB +).Internet Explorer仅使用大约30MB.

我正在使用最新版本的Firefox,并且在测试时禁用了我的所有附加组件.此外,我从页面中删除了所有的CSS和JavaScript.

这是firefox的已知问题吗?还有其他人经历过这个吗?可以采取哪些措施来解决问题或者至少开始排除故障?

编辑我知道在页面上有这么多表行是一个可怕的UI设计实践.感谢所有指出这一点的人,但这不是我的问题.为了进一步澄清,我只是好奇为什么它适用于除Firefox以外的所有浏览器.

html asp.net firefox html-table

8
推荐指数
2
解决办法
8044
查看次数

34
推荐指数
3
解决办法
4万
查看次数

如何使用Google Guice创建需要参数的对象?

也许我只是盲目,但我不知道如何使用Guice(刚开始)来替换new此方法中的调用:

public boolean myMethod(String anInputValue) {
    Processor proc = new ProcessorImpl(anInputValue);
    return proc.isEnabled();
}
Run Code Online (Sandbox Code Playgroud)

对于测试,可能会有一个不同的处理器实现,所以我想避免new调用,并在此过程中摆脱对实现的依赖.

如果我的类只记得处理器的一个实例,我可以通过构造函数注入它,但由于处理器被设计为不可变的,我每次都需要一个新的.

我将如何使用Guice(2.0)实现这一目标?

java dependency-injection guice

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

手动执行WPF路由命令

RoutedUICommand从代码隐藏手动执行自定义时,如下所示:

MyCommands.MyCommand.Execute(parameter, target)
Run Code Online (Sandbox Code Playgroud)

我需要先调用CanExecute方法还是已经在Execute方法中完成了?

c# wpf routed-commands

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

在活动时围绕文本框创建发光效果

将光标放在文本框中时,在文本框周围创建发光效果.例如:只需将光标放在stackoverflow.com中的搜索文本框中即可.

它因为css,但我不知道如何实现它..请帮助我.

html css xhtml

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