小编aaa*_*dan的帖子

C++继承 - 难以访问的基础?

我似乎无法使用基类作为函数参数,我是否搞砸了我的继承?

我的主要内容如下:

int some_ftn(Foo *f) { /* some code */ };
Bar b;
some_ftn(&b);
Run Code Online (Sandbox Code Playgroud)

并且以这种方式继承自Foo的类Bar:

class Bar : Foo
{
public:
    Bar();
    //snip

private:
    //snip
};
Run Code Online (Sandbox Code Playgroud)

这应该不起作用吗?我似乎无法在我的主要功能中进行该调用

c++ inheritance

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

Mongoose,更新对象数组中的值

有没有办法更新对象中的值?

{
  _id: 1,
  name: 'John Smith',
  items: [{
     id: 1,
     name: 'item 1',
     value: 'one'
  },{
     id: 2,
     name: 'item 2',
     value: 'two'
  }]
}
Run Code Online (Sandbox Code Playgroud)

假设我想更新id = 2的项目的名称和值项目;

我尝试了以下w/mongoose:

var update = {name: 'updated item2', value: 'two updated'};
Person.update({'items.id': 2}, {'$set':  {'items.$': update}}, function(err) { ...
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在于它更新/设置整个对象,因此在这种情况下我丢失了id字段.

有没有更好的方法在mongoose中设置数组中的某些值但是只留下其他值?

我也只是询问了这个人:

Person.find({...}, function(err, person) {
  person.items ..... // I might be able to search through all the items here and find item with id 2 then update the values I want …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

74
推荐指数
7
解决办法
10万
查看次数

可以覆盖/实现的ruby运算符列表

是否有可以覆盖的所有ruby运算符的列表?(不是那些不能!)

ruby operator-overloading operators

24
推荐指数
1
解决办法
6833
查看次数

会话存储可以安全吗?

我想使用会话存储只查询数据库中的用户数据一次,然后只需使用JS来检索它,所以我正在考虑使用会话存储.接下来我的问题是,那安全吗?

请注意:

1. JS无法插入带有表单的页面(表单只接受字母数字值),因此它只能来自URL

1.1查询字符串如www.website.com/?q=blablabla未在php中使用(php不从url检索任何数据)

1.2使用javascript:script调用url中的js并不是一个大问题,因为用户只能获取自己的数据,更不用说他已经可以访问它了 - 这就是用户数据的重点

1.3是否有第三种方式通过包含JS的链接将用户重定向到站点,而不能访问会话存储?即:像某样的东西 - www.website.com/script ...

我的猜测是,只有像1.3这样的东西才会成为威胁(除此之外,我错过了什么吗?)但这是否存在?如果有,有办法防止它吗?

谢谢你的时间和回复.

javascript xss session html5 storage

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

如何使用不确定的复选框处理浏览器差异

Primer:可以将HTML复选框设置为indeterminate,既不选中也不选中.即使在这种不确定的状态下,仍然存在潜在的布尔checked状态.

Mac OS X复选框处于各种状态


单击不确定复选框时,它将失去其indeterminate状态.根据浏览器(Firefox),它还可以切换checked属性.

这个jsfiddle说明了这种情况.在Firefox中,单击其中一个复选框会导致它们切换其初始基础checked状态.在IE中,checked第一次单击时该属性保持不变.

我希望所有浏览器的行为都相同,即使这意味着额外的javascript.不幸的是,该indeterminate属性设置为false 之前onclick处理(或onchange和jQuery change)被调用,所以我无法检测它是否就是所谓的上点击indeterminate复选框或没有.

mouseupkeyup(用于空格键切换)事件显示之前indeterminate的状态,但我宁愿不那么具体:它似乎脆弱.

我可以在复选框(data-indeterminate或类似的)上维护一个单独的属性,但我想知道是否有一个我缺少的简单解决方案,和/或其他人是否有类似的问题.

html checkbox html-input

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

Chrome DevTools:在文档滚动更改时设置断点?

有时,在大型客户端Web应用程序中,有必要确定哪一行代码已通过scrollTo()调用滚动文档(或者如果这甚至是滚动*的原因).

是否有任何Chrome DevTools功能会破坏窗口滚动上的JS执行?我正在想象一个类似于DOM Breakpoints功能的功能.

*滚动也可能由于其他原因而发生,例如屏幕外的文本输入<input>.

javascript debugging breakpoints google-chrome-devtools

18
推荐指数
2
解决办法
7260
查看次数

访问flash.net.URLLoader对象的HTTP响应头?

有没有办法在使用Flash/Flex时从HTTP结果访问响应头URLLoader

可以设置请求标头,访问响应代码也是如此,但是获得实际响应标头似乎显然缺乏...

具体来说,我想得到一个Last-Modified响应头.

apache-flex flash urlloader actionscript-3 http-headers

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

<iframe> javascript跨域访问父DOM?

我控制嵌入在另一个域的页面中的iframe的内容.我的iframe中的javascript是否有任何方法可以更改父级的DOM?

例如,我想让我的iframed脚本向父DOM添加一堆html元素.这看起来像一个很高的命令 - 想法?

编辑:存在一种称为" 片段ID消息 "的技术,它可能是跨域iframe之间进行通信的一种方式.

编辑:此外,Firefox 3.5,Opera,Chrome(等)似乎采用html5 "postMessage"api,它允许帧,iframe和弹出窗口之间的安全,跨域数据传输.它就像一个事件系统.IE8显然支持这个功能,这可能有点令人惊讶.

摘要:不,您无法直接从其他域访问/编辑页面的DOM.但是你可以与它进行交流,它可以合作进行你想要的改变.

javascript iframe dom cross-domain

16
推荐指数
3
解决办法
6万
查看次数

如何在C++(Newbie)中通过引用传递"literal"整数

编辑:正如许多人所指出的,传递引用通常不适合作为原始类型的优化.这很好知道,谢谢大家!即便如此,我的问题更多的是为什么文字价值似乎无法通过引用传递,这已被公认的答案所解决.干杯!


(原谅我的天真:我对C++很陌生.)

为了避免在调用函数(比如"fillRect")时按值复制效率低下,我想通过引用传递参数.

如果我提供参数作为声明的局部变量,它工作正常.但是如果我提供任何"文字"整数,我会得到一个编译错误(没有匹配的函数).

void fillRect( int &x, int &y, int &width, int &height )
{
    // do something
}

int x=10, y=20, w=100, h=80;

fillRect(x, y, w, h); // this compiles and works!
fillRect(x, y, 100, 80); // but this doesn't compile ... why?
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?

c++ pass-by-reference

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

Lzz(Lazy C++) - 找不到#include文件

我正在尝试使用Lzz从我的*.cpp文件生成C++头文件.

调用序列是这样的:./ lzz -hx hpp -c -o out src/*.lzz

不幸的是,它始终无法说它找不到任何包含的标题,包括标准库的部分,如iostream,string和vector.

我收到一堆这样的错误消息:

src/CommonIO.lzz:7:10:找不到#include文件.src/CommonIO.lzz:8:10:找不到#include文件.src/CommonIO.lzz:9:10:找不到#include文件.

我知道我可以使用-I参数给它包含路径:-I /usr/local/include/c++/4.5.1

但它似乎没有帮助,因为它开始抱怨来自标准库的包含:/usr/local/include/c++/4.5.1/string:40:10:找不到#include文件.

可能是因为我在64位系统(Ubuntu 10.10)上运行32位版本(从http://www.lazycplusplus.com/download.html下载的二进制文件)?

我已经尝试从源代码编译自己的Lzz,但它抱怨缺少制作libconf.a的规则:

make [1]:*没有规则来制作目标/home/petmal/Desktop/Downloads/lzz_2_8_2_src/gcc.opt/libs/libconf.a', needed by/home/petmal/Desktop/Downloads/lzz_2_8_2_src/gcc.opt/lzz'.停止.

c++ lazy-c++ include

13
推荐指数
1
解决办法
2554
查看次数