我试图将模板编程(以及在未来的某些方面,模板元编程)应用于现实世界的场景.我发现的一个问题是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) 给定具有父表和两个或更多子表的数据库模式.例如:

是否可以使用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) 我的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.
我需要做的是成功地获取每个类并将它们放在一个数组中.这样我就可以用它来为整个表做必要的计算.
帮助将不胜感激.
谢谢
我目前有以下查询:
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)
我需要帮助搞清楚三件事:
如何在名字和姓氏之间加一个空格?
如何在每个逗号后插入一个空格?
如何在显示姓氏前添加"和"?
我在Xcode中为iphone做了一个应用程序,但是由于最近的发展,我现在需要将它变成一个Web应用程序.
我知道Dashcode创建适合iphone的Web应用程序.我可以以某种方式将我的Xcode项目导入Dashcode吗?或者我可以使用Xcode将其转换为Web应用程序而无需完全重写应用程序吗?
我有一堆矩形物体,我需要将它们装入尽可能小的空间(这个空间的尺寸应该是2的幂).
我知道各种打包算法会将项目尽可能地打包到给定的空间中,但是在这种情况下我需要算法来计算出该空间应该有多大.
例如,说我有以下矩形
它们可以装入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,并且每个维度的给定最大大小)?
你能解释下面的代码吗?
str = (char *) malloc (sizeof(char) * (num+1));
Run Code Online (Sandbox Code Playgroud)
malloc做什么的?num + 1用?我有一个网站,需要(显然)HTTPS结帐.目前的修复工作涉及使整个站点以SSL模式运行,但这会导致问题.
我怎么改变这个......
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
Run Code Online (Sandbox Code Playgroud)
仅将某个URL(比如basket.php)设置为HTTPS?
我有两个吸气成员:
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源获取我的值呢?
我想得到一些关于这个想法的反馈,因为我可以看到每种方法的优缺点.作为Java开发人员,这将是关于将jar文件存储在代码存储库中,但它可以很容易地扩展到其他编译语言.
优点:
缺点: