C++不允许基于返回类型的方法的多态性.但是,当重载隐式转换成员函数时,这似乎是可能的.
有谁知道为什么?我认为运算符在内部处理方式.
编辑:这是一个例子:
struct func {
operator string() { return "1";}
operator int() { return 2; }
};
int main( ) {
int x = func(); // calls int version
string y = func(); // calls string version
double d = func(); // calls int version
cout << func() << endl; // calls int version
}
Run Code Online (Sandbox Code Playgroud) 我有以下脚本:
Timer=0;
function countdown(auctionid){
var auctions;
var divs;
Timer=Timer+1;
if((Timer%10=="0")||(Timer=="1")){
$.get("current.php", {
id:auctionid
},
function(data){
auctions=data.split("||");
for(n=0;n<=auctions.length;n++){
if(auctions[n] != undefined){
divis=auctions[n].split("##");
$('#futu'+divis[0]).html(divis[1]);
}
}
}
);
}
var cauctionid="auctionid";
var tauctions=auctionid.split("|");
for(i=0;i<=tauctions.length;i++){
if(tauctions[i] != undefined){
var dd=$('#futu'+tauctions[i]).text();
var cdd=dd-1;
$('#futu'+tauctions[i]).html(cdd);
dd=dd*1000;
dday=Math.floor(dd/(60*60*1000*24)*1)
dhour=Math.floor(dd/(60*60*1000)*1)
dmin=Math.floor((dd%(60*60*1000))/(60*1000)*1)
dsec=Math.floor(((dd%(60*60*1000))%(60*1000))/1000*1)
if(dday==0&&dhour==0&&dmin==0&&dsec==0){
$('#Bid'+tauctions[i]).html("SOLD");
//return
}
if(dhour <=9){
dhour = "0"+dhour;
}
if(dmin <=9){
dmin = "0"+dmin;
}
if(dsec <=9){
dsec = "0"+dsec;
}
if(dd>=1000){
var valll=dhour+":"+dmin+":"+dsec;
}
if(dd<1000){
var valll="00:00:00";
}
$('#Bid'+tauctions[i]).html(valll);
}
}
refreshID=setTimeout("countdown('"+auctionid+"')",1000);
} …
Run Code Online (Sandbox Code Playgroud) 问候,
我试图使用以下2个缩写的代码行(从下面的完整测试应用程序)执行从一个向量(vec1)到另一个向量(vec2)的副本:
vec2.reserve( vec1.size() );
copy(vec1.begin(), vec1.end(), vec2.begin());
Run Code Online (Sandbox Code Playgroud)
虽然对vec2的调用设置了向量vec2的容量,但是将数据复制到vec2似乎没有填写从vec1到vec2的值.
用push_back()调用替换copy()函数按预期工作.
我在这里错过了什么?
谢谢你的帮助.然后是结果输出的vectest.cpp测试程序.
编译器:关于cygwin的gcc 3.4.4.
/**
* vectest.cpp
*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec1;
vector<int> vec2;
vec1.push_back(1);
vec1.push_back(2);
vec1.push_back(3);
vec1.push_back(4);
vec1.push_back(5);
vec1.push_back(6);
vec1.push_back(7);
vec2.reserve( vec1.size() );
copy(vec1.begin(), vec1.end(), vec2.begin());
cout << "vec1.size() = " << vec1.size() << endl;
cout << "vec1.capacity() = " << vec1.capacity() << endl;
cout << "vec1: ";
for( vector<int>::const_iterator iter = vec1.begin(); iter < vec1.end(); ++iter ) {
cout …
Run Code Online (Sandbox Code Playgroud) 我正在使用http://code.google.com/p/google-toolbox-for-mac中的 GTMStackTrace .
我需要一种方法来测试最终用户在应用程序崩溃时向我发送错误.我知道如何将数据发送到我的网站,但问题是如何捕获所有未处理的错误.
我有这个代码:
void exceptionHandler(NSException *exception) {
NSLog(@"%@", [exception reason]);
NSLog(@"%@", [exception userInfo]);
NSLog(@"%@", GTMStackTraceFromException(exception));
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Error unexpected",@"Info: Can't save record")
message:GTMStackTraceFromException(exception) delegate:nil
cancelButtonTitle:NSLocalizedString(@"Ok",@"Button: Ok") otherButtonTitles:nil];
[alert show];
[alert release];
}
int main(int argc, char *argv[]) {
//For crash report..
NSSetUncaughtExceptionHandler(&exceptionHandler);
//Normal code...
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
然而,事情不是抓了很多的错误,像一个坏的版本,一个BAD ACCES等,和App消失.我有2个问题,其中目前尚不清楚为什么happend和最终用户有没有什么要说的线索.
(例如,释放两次相同的var不能捕获)
那么,如何我得到的所有讨厌的错误,从而使最终用户简单的给我发一份崩溃报告吗?
我有一些LINQ代码生成一个字符串列表,如下所示:
var data = from a in someOtherList
orderby a
select FunctionThatReturnsString(a);
Run Code Online (Sandbox Code Playgroud)
如何将该字符串列表转换为一个大的连接字符串?假设数据包含以下条目:
"Some "
"resulting "
"data here."
Run Code Online (Sandbox Code Playgroud)
我应该得到一个看起来像这样的字符串:
"Some resulting data here."
Run Code Online (Sandbox Code Playgroud)
我该怎么办?我想到了这个:
StringBuilder sb = new StringBuilder();
data.ToList().ForEach(s => sb.Append(s));
string result = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
但这似乎并不合适.如果它是正确的解决方案,我将如何将其转换为扩展方法?
使用URL参数的正确方法是什么?
我的URL是这样的:http:// localhost:8080 /#pg5?testing = abc
在我的代码中,我试图使用这行代码获得测试的价值:
String value = com.google.gwt.user.client.Window.Location.getParameter("testing");
Run Code Online (Sandbox Code Playgroud)
不幸的是,所有这一切都将我的字符串设置为"undefined".
我想也许它没有得到正确的URL,但这段代码返回正确的URL:
String value = com.google.gwt.user.client.Window.Location.getHref();
Run Code Online (Sandbox Code Playgroud)
我知道我可以解析url以获取我的参数,但我认为这就是getParamerter()的用途.
是否有任何等效的函数返回X
PHP 中的位置字符?
我浏览了文档但找不到任何文档.我正在寻找类似的东西:
$charAtPosition20 = strCharAt(20, $myString);
Run Code Online (Sandbox Code Playgroud) 我收到以下错误,我花了几个小时看着它,无法弄清楚为什么!
错误:您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'primary ='doej2'附近使用正确的语法,在第1行查找辅助='1'WHERE id ='2''
这是我的代码:
<?php
if (isset($_POST[Edit])){
$id = $_POST['id'];
$primary = $_POST['primary'];
$secondary = $_POST['secondary'];
$query = mysql_query("UPDATE eventcal SET primary='$primary', secondary='$secondary' WHERE id='$id'");
if (!$query) {
$_SESSION['alert'] = 'ERROR: ' . mysql_error();
}
}?>
Run Code Online (Sandbox Code Playgroud)
这是eventcal表的表结构:
CREATE TABLE `eventcal` (
`id` int(10) unsigned NOT NULL auto_increment,
`region` tinyint(3) unsigned NOT NULL,
`primary` varchar(25) NOT NULL,
`secondary` tinyint(1) NOT NULL,
`eventDate` date NOT NULL,
PRIMARY KEY (`id`),
KEY `primary_2` (`primary`),
KEY `secondary` (`secondary`),
CONSTRAINT `eventcal_ibfk_1` FOREIGN KEY …
Run Code Online (Sandbox Code Playgroud) 我是Oracle平台的新手(主要使用MySQL,还有一些Postgres和SQL Server).我最近发现了以下声明
DESC TABLE_NAME;
Run Code Online (Sandbox Code Playgroud)
只能用于我用来测试查询的SQL*Plus工具.当我使用PHP的标准函数连接到oracle数据库时,它将无法工作.我需要使用类似的东西
SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'TABLE_NAME'
Run Code Online (Sandbox Code Playgroud)
代替.
据我所知,这是因为"DESC"语句是SQL*Plus应用程序中的附加组件.
我的问题是
我正在开发一个应用程序,允许通过点击直接标记照片(如Facebook,flickr等).但是,我似乎无法为照片上的点击注册正确的坐标.问题是x坐标似乎是浏览器窗口内(而不是照片内)点击的绝对x距离,而y坐标通常是负的或非常小(靠近顶部的负值,靠近底部的小值).这些是我在左上角附近点击时得到的值(应该注册为0或者接近0:"x"=>"219","y"=>" - 311"...... 219似乎是正确的测量距浏览器窗口左侧的距离,但距离应在照片区域内)
我目前正在使用常规链接(链接包含其他相关照片数据)捕获照片上的点击事件和坐标,并在将其传递给我的rails应用程序之前进行数学运算(jquery文档中使用的相同计算).我怀疑这个方法与错误的值有很大关系,尽管我怀疑数学或某些css怪可能有问题.在任何一种情况下,我都绝对是难以置信的.
JS:
$(document).ready(function(){
clickTag();
Run Code Online (Sandbox Code Playgroud)
});
function clickTag(){
$("#taggable").click(function(e){
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
var url = $(this).attr("href");
courl = url + '&x=' + x + '&y=' + y;
$.ajax({
type:"GET",
url: courl,
dataType:"script"
});
return false;
});
}
Run Code Online (Sandbox Code Playgroud)
CSS:
`<div class="content">
<div id="image_container" style="position:relative;width:405px;float:left;height:600px;>
<a href="/tags/new_xy?look_id=188&photo_id=1150" id="taggable" style="position:relative;top:0;left:0px;"><img alt="taggable_image" src="taggable_image.jpg" /></a>
<div class="tags" id="tags"></div>
</div>
</div>`
Run Code Online (Sandbox Code Playgroud)