问题列表 - 第26234页

C++虚拟构造函数,没有clone()

我想执行指向多态类指针的STL容器的"深层副本" .

我知道Prototype设计模式,通过Virtual Ctor Idiom实现,如C++ FAQ Lite,第20.8项中所述.
它简单明了:

struct ABC // Abstract Base Class
{
    virtual ~ABC() {}
    virtual ABC * clone() = 0;
};
struct D1 : public ABC
{
    virtual D1 * clone() { return new D1( *this ); } // Covariant Return Type
};
Run Code Online (Sandbox Code Playgroud)

然后是深层复制:

for( i = 0; i < oldVector.size(); ++i )
    newVector.push_back( oldVector[i]->clone() );
Run Code Online (Sandbox Code Playgroud)

缺点

正如Andrei Alexandrescu 所述:

clone()实施必须遵循所有派生类相同的模式; 尽管它具有重复的结构,但没有合理的方法来自动定义clone() …

c++ prototype clone virtual-copy

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

如何以编程方式接听电话

我知道以前曾经问过这个问题,但此时这个帖子的回答并不正确.Vringo和其他应用程序通过按下应用程序上的按钮来接听电话,因此必须有办法实现.

有人有建议吗?

android phone-call

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

javascript开关(true)

嗨,我正在尝试处理ajax json响应

这是我的代码

success: function (j) {     
    switch(true)
    {
        case (j.choice1):

            alert("choice2");
        break;
        case (j.choice2):
                alert("choice2");
        break;
        default:
            alert("default");
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

基于什么是j返回我做我的行动但我继续得到默认.

我已经提醒j值并且正确.有些情况(j.choice1)case(j.choice2)无效.

我试过案例(j.choice1!="")(j.choice2!="")但在这种情况下,我一直是第一选择.

我错过了什么

javascript

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

找到模块的孩子的更好方法是什么?

这就是我所拥有的,但它也找到了类和其他常量..有更好的方法吗?

class Module
    def children
        constants.collect { |c| const_get(c) }.compact
    end
end
Run Code Online (Sandbox Code Playgroud)

ruby metaprogramming

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

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

将IList转换为集合

我需要投IList一个Collection(System.Collections.ObjectModel)

你是怎么做到这一点的?

c# collections ilist

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

使用GCC链接具有重复类名的库

GCC是否有办法在链接包含具有相同名称的类的库时生成警告?例如

Port.h

class Port {
public:
  std::string me();
};
Run Code Online (Sandbox Code Playgroud)

Port.cpp

#include "Port.h"
std::string Port::me() { return "Port"; }
Run Code Online (Sandbox Code Playgroud)

FakePort.h

class Port {
public:
  std::string me();
};
Run Code Online (Sandbox Code Playgroud)

FakePort.cpp

#include "FakePort.h"
std::string Port::me() { return "FakePort"; }
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include "Port.h"

int main() {
  Port port;
  std::cout << "Hello world from " << port.me() << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

建造

# g++ -c -o Port.o Port.cpp
# ar rc Port.a Port.o
# g++ -c -o FakePort.o FakePort.cpp
# ar rc FakePort.a FakePort.o
# …
Run Code Online (Sandbox Code Playgroud)

c++ gcc

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

NOOB内存问题 - EXC_BAD_ACCESS(OBJ-C/iPhone)

我一直在靠墙撞墙几天,需要一些帮助.我觉得我在做一些非常愚蠢的事情,但我找不到问题.这是表视图的控制器.我把SQL放在一行以简化它,作为此错误的故障排除的一部分.通常,它将位于模型类中的存取方法中.

它通过SQL读取就好了.找到这两个对象,将它们加载到todaysWorkout数组中,然后为表视图构建单元格.表视图实际上出现在scree上,然后抛出EXC_BAD_ACCESS.

我运行了仪器,它显示以下内容:

0 CFString Malloc 1 00:03.765 0x3946470 176基础 - [NSPlaceholderString initWithFormat:locale:arguments:]

1 CFString Autorelease 00:03.765 0x3946470 0 Foundation NSRecordAllocationEvent

2 CFString CFRelease 0 00:03.767 0x3946470 0带它 - [WorkoutViewController viewDidLoad]

3 CFString Zombie -1 00:03.917 0x3946470 0基础NSPopAutoreleasePool

这是控制器的源代码.我把它全部放在那里以防万一有什么东西导致问题.我真诚地感谢我能得到的任何帮助:

标头:

#import <UIKit/UIKit.h>
#import <sqlite3.h>
#import "NoteCell.h"
#import "BIUtility.h"
#import "Bring_ItAppDelegate.h"
#import "MoveListViewController.h"


@class MoveListViewController;
@class BIUtility;

@interface WorkoutViewController : UITableViewController {
    NSMutableArray *todaysWorkouts;
    IBOutlet NoteCell *woNoteCell;
    MoveListViewController *childController;
    NSInteger scheduleDay;
    BIUtility *bi;
}

@property (nonatomic, retain) NSMutableArray *todaysWorkouts;
@property (nonatomic, …
Run Code Online (Sandbox Code Playgroud)

memory-management exc-bad-access objective-c

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

Rails的未来日期

我正在尝试进行验证,以验证输入的日期是否在将来以及所选日期是否在接下来的7天内.

为了验证日期是否将来我使用;

valid_until.future? 
Run Code Online (Sandbox Code Playgroud)

这个工作正常,但要进行验证以检查所选日期是否已经过了7天?

datetime ruby-on-rails

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

在SQL中将非常大量的记录插入表中的最快方法

问题是,我们有大量的记录(超过一百万)从Java应用程序插入到单个表中.记录是由Java代码创建的,它不是从另一个表移动,所以INSERT/SELECT无济于事.

目前,我的瓶颈是INSERT语句.我正在使用PreparedStatement来加速这个过程,但我不能在普通服务器上每秒获得超过50个recods.该表根本不复杂,并且没有定义索引.

这个过程花费的时间太长,花费的时间会产生问题.

我该怎么做才能获得最大速度(INSERT每秒)?

数据库:MS SQL 2008.应用程序:基于Java,使用Microsoft JDBC驱动程序.

java sql-server performance large-data-volumes

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