问题列表 - 第11503页

可以使用模板多态来代替OO多态吗?

我试图将模板编程(以及在未来的某些方面,模板元编程)应用于现实世界的场景.我发现的一个问题是C++模板和多态并不总是按照我想要的方式一起玩.

我的问题是,我试图应用模板编程的方式是不正确的(我应该使用普通的旧OOP),或者我是否仍然坚持OOP思维模式.

在这种特殊情况下,我试图使用策略模式解决问题.我一直遇到这样的问题,我最终想要一些表现形式多样的模板似乎不支持.

OOP代码使用组成:

class Interpolator {
   public:
     Interpolator(ICacheStrategy* const c, IDataSource* const d);
     Value GetValue(const double);
}

void main(...) {
    Interpolator* i;
    if(param==1)
       i = new Interpolator(new InMemoryStrategy(...), new TextFileDataSource(...));
    else if(param==2)
       i = new Interpolator(new InMemoryStrategy(...), new OdbcDataSource(...));
    else if(param==3)
       i = new Interpolator(new NoCachingStrategy(...), new RestDataSource(...));

    while(run) {
       double input = WaitForRequest();
       SendRequest( i->GetValue(input));
    }
}
Run Code Online (Sandbox Code Playgroud)

潜在模板版本:

class Interpolator<class TCacheStrategy, class TDataSource> {
   public:
     Interpolator();
     Value GetValue(const double);               //may not be the best way but
     void ConfigCache(const& …
Run Code Online (Sandbox Code Playgroud)

c++ oop templates

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

从SQL Server中的多表连接生成XML

给定具有父表和两个或更多子表的数据库模式.例如:

数据库图

是否可以使用for xml语句创建一个输出以下XML的查询:

<?xml version="1.0"?>
<person>
    <name>Joe Bloggs</name>
    <age>25</age>
    <address>
        <streetAddress>123 Test Street</streetAddress>
        <town>Example Town</town>
        <postcode>A12 3BC</postcode>
    </address>
    <address>
        <streetAddress>124 Test Street</streetAddress>
        <town>Example Town</town>
        <postcode>A12 3BC</postcode>
    </address>
    <contact>
        <type>Home Phone</type>
        <value>01234 567890</value>
    </contact>
    <contact>
        <type>Work Phone</type>
        <value>01987 654321</value>
    </contact>
    <contact>
        <type>Email Address</type>
        <value>joe@example.com</value>
    </contact>
</person>
Run Code Online (Sandbox Code Playgroud)

我最初的尝试:

select person.name, person.age,
        address.streetAddress, address.town, address.postcode,
        contact.type, contact.value
    from Person as person
        left join Address as address on person.PersonID = address.PersonID
        left join Contact as contact on person.PersonID = contact.PersonID
    where person.PersonID …
Run Code Online (Sandbox Code Playgroud)

xml sql-server join

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

使用jQuery创建一个分配给元素的多个CSS类的Javascript数组

我的javascript:再次更新.

        $('.calc').change(function(){
            var classArray = $(this).attr('class').split(',');

            $.each(classArray, function(){
                alert(classArray);
                });
            });
Run Code Online (Sandbox Code Playgroud)

并输入:

<input type="text" class="calc R#r# C#i#" />
Run Code Online (Sandbox Code Playgroud)

英镑符号是变量,我正在使用ColdFusion.

我需要做的是成功地获取每个类并将它们放在一个数组中.这样我就可以用它来为整个表做必要的计算.

帮助将不胜感激.

谢谢

javascript arrays coldfusion jquery input

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

MySQL GROUP_CONCAT:格式化输出

我目前有以下查询:

SELECT group_concat(DISTINCT usrFirst, usrLast) as receiver_name  //etc
Run Code Online (Sandbox Code Playgroud)

使用PHP时,它会输出我的名字列表,如下所示:

<?php 
    echo $row['receiver_name'];

    //Outputs: JohnDoe,BillSmith,DaveJones

    //Desired output: John Doe, Bill Smith, and Dave Jones
Run Code Online (Sandbox Code Playgroud)

我需要帮助搞清楚三件事:

  1. 如何在名字和姓氏之间加一个空格?

  2. 如何在每个逗号后插入一个空格?

  3. 如何在显示姓氏前添加"和"?

php mysql group-concat

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

我可以将我在xcode中创建的iphone应用程序变成Web应用程序吗?

我在Xcode中为iphone做了一个应用程序,但是由于最近的发展,我现在需要将它变成一个Web应用程序.

我知道Dashcode创建适合iphone的Web应用程序.我可以以某种方式将我的Xcode项目导入Dashcode吗?或者我可以使用Xcode将其转换为Web应用程序而无需完全重写应用程序吗?

iphone xcode web-applications dashcode

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

可以使用什么算法以不同的方式将不同大小的矩形打包成最小的矩形?

我有一堆矩形物体,我需要将它们装入尽可能小的空间(这个空间的尺寸应该是2的幂).

我知道各种打包算法会将项目尽可能地打包到给定的空间中,但是在这种情况下我需要算法来计算出该空间应该有多大.

例如,说我有以下矩形

  • 128*32
  • 128*64
  • 64*32
  • 64*32

它们可以装入128*128的空间

 _________________
|128*32          |
|________________|
|128*64          |
|                |
|                |
|________________|
|64*32  |64*32   |
|_______|________|

但是如果还有160*32和64*64,则需要256*128空间

 ________________________________
|128*32          |64*64  |64*32  |
|________________|       |_______|
|128*64          |       |64*32  |
|                |_______|_______|
|                |               |
|________________|___            |
|160*32              |           |
|____________________|___________|

有哪些算法能够打包一堆矩形并确定容器所需的大小(功率为2,并且每个维度的给定最大大小)?

algorithm packing

269
推荐指数
6
解决办法
9万
查看次数

malloc在这段代码中做了什么?

你能解释下面的代码吗?

str = (char *) malloc (sizeof(char) * (num+1));
Run Code Online (Sandbox Code Playgroud)
  1. 这是 malloc做什么的?
  2. 为什么num + 1用?

c c++ malloc

5
推荐指数
4
解决办法
7581
查看次数

使用.htaccess控制某些页面上的HTTPS

我有一个网站,需要(显然)HTTPS结帐.目前的修复工作涉及使整个站点以SSL模式运行,但这会导致问题.

我怎么改变这个......

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
Run Code Online (Sandbox Code Playgroud)

仅将某个URL(比如basket.php)设置为HTTPS?

.htaccess mod-rewrite ssl https

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

为什么C++不允许在复制ctor中进行非const到const的转换?

我有两个吸气成员:

Node* prev() { return prev_; }
int value()  { return value_ }
Run Code Online (Sandbox Code Playgroud)

请注意缺少const标识符(我忘了它们,但现在我想知道为什么这不起作用).我想把它编译成:

Node(Node const& other) : prev_(other.prev()), value_(other.value()) { }
Run Code Online (Sandbox Code Playgroud)

编译器拒绝这一点.我认为C++允许在函数参数中进行非const到const转换,例如:

{
   Foo(int bar);
}

Foo(const int bar)
{
   //lala
}
Run Code Online (Sandbox Code Playgroud)

为什么它不允许我用复制构造函数做同样的事情?const标识符意味着我保证不会改变任何东西,那么为什么我从const或非const源获取我的值呢?

c++ const copy-constructor

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

您是否将构建存储在源代码存储库中?

我想得到一些关于这个想法的反馈,因为我可以看到每种方法的优缺点.作为Java开发人员,这将是关于将jar文件存储在代码存储库中,但它可以很容易地扩展到其他编译语言.

优点:

  • 可以轻松检索以前的发行版,而无需依赖(基本上不再可用)过时的工具来重新编译.

缺点:

  • 可以快速"膨胀"代码存储库,具体取决于构建的频率.

version-control

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