我在接受采访时被问到这个问题.
就我的知识而言,后期绑定是在运行时动态识别符号.如果我错了,请纠正我.
我被问到一个问题,比如我们在c ++中使用后期绑定时会遇到的问题是什么.我实际上是出于我自己的想法.
请你分享一下你职业生涯中可能遇到的问题.
谢谢.
我写了一些代码来修改网页上的图像.适用于Firefox和Safari.但是试图让它与Internet Explorer一起工作让我很难过.什么是资源管理器中的"parentNode"?或者如何让它成功运作?
images = document.getElementsByTagName('img')
parms = {};
for (a=0;a < images.length;a++){
parent = images[a].parentNode; // <-- What to substitute for explorer?
parms[a] = {};
parms[a].bigsrc=parent.getAttribute("href");
parms[a].w_o = images[a].width;
parms[a].h_o = images[a].height;
parms[a].IsBig = false;
parms[a].loaded = false;
images[a].border=0;
parent.setAttribute("href","javascript:MakeBig('"+a+"')");
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找*nix上的命令行实用程序,它可以转储文件中定义的所有函数,类等的名称(C/C++/Java)
我想在Windows Phone 7上直接启动YouTube播放器.
我尝试使用WebBrowserTask并提供YouTube网址,它打开浏览器并将我带到包含YouTube视频缩略图的页面,我需要在视频播放前点击缩略图.
我想跳过额外的点击.我希望用户点击我的应用中的按钮,它应该直接播放视频.有办法吗?
假设我想通过让函数的每次调用读取下一个参数来制作一个递归解析可变参数列表的函数?将va_list交给下一个函数后,我不打算继续在调用函数中使用va_list。是否可以使用以下代码:
void VarArgRecursive( va_list args ) {
int nextArg = va_arg(args, int);
if( nextArg != -1 ) {
printf("Next arg %d\n", nextArg);
VarArgRecursive(args);
}
}
void VarArgFunc( int firstArg, ... ) {
va_list args;
va_start(args, firstArg);
VarArgRecursive(args);
va_end(args);
}
int main (int argc, char * const argv[]) {
VarArgFunc(20, 12, 13, -1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该代码在我的系统上编译,并且输出符合预期:
Next arg 12
Next arg 13
Run Code Online (Sandbox Code Playgroud)
那么,这种做法可以吗?我搜索了列表,发现将va_list移交给下一个函数后,调用函数中va_list的内容未定义。这对我的用法无关紧要,因为在将va_list移交给下一个(实际上是相同的)函数之后,我将不再继续使用它。我还检查了此页面:
http://c-faq.com/varargs/handoff.html
...这表明我将va_list移交给下一个函数的方式是可以的。它没有说的是,在读取一个arg之后是否可以将va_list交给另一个函数,并期望被调用的函数读取下一个arg。如果对此问题有特定于c ++的答案,那也是可以的,因为它将在c ++程序中使用。
哪些浏览器(版本)支持globalStorage?这是一个已弃用的JavaScript客户端浏览器存储API.
我看到http://caniuse.com/namevalue-storage,但没有明确提到globalStorage.
在我的项目中,我已将警告视为错误,并使用-pedantic和-ansi标签进行编译.我正在使用GCC编译器.在这个项目中,我必须使用第三方源代码,它有很多警告.由于我将警告视为错误,因此我在修复代码时遇到了困难.
大部分的警告是关于从无效转换int到size_t或反之亦然.在某些情况下,我将无法使两个变量同类型,我的意思是我将无法改变某些东西size_t.在这种情况下,我正在做一个明确的演员.就像是,
size_t a = (size_t) atoi(val);
Run Code Online (Sandbox Code Playgroud)
我想知道这是正确的方法吗?像这样做演员有什么问题吗?
如果这些警告很小,我可以仅在其文件中禁止它吗?我如何在MSVC上做同样的事情?
我一直在用'加速C++'教自己cpp,最近我注意到当我忘记了我的#include <algorithm>语句时,我的代码(包括transform和find_if)编译并成功运行.在此之后,我尝试完全删除所有标准的header include语句,并发现我的代码仍然运行.
我假设我无法理解预处理器命令将在我完成本书时解决,但是现在我只需要知道如何确保当我不正确地使用标题时我的终端对我大喊大叫所以我可以知道事情是什么位于std图书馆.
我正在运行OS 10.6.5所以我必须使用以下unix exe文件编译我的代码:
CC = g++
CFLAGS = -Wall
PROG = TrainingProject23
SRCS = TrainingProject23.cpp
ifeq ($(shell uname),Darwin)
LIBS = -framework OpenGL -framework GLUT
else
LIBS = -lglut
endif
all: $(PROG)
$(PROG): $(SRCS)
$(CC) $(CFLAGS) -o $(PROG) $(SRCS) $(LIBS)
clean:
rm -f $(PROG)
Run Code Online (Sandbox Code Playgroud)
它包含了OpenGL的构建协议,因为我也在学习它,并且很容易使用这个文件来编译我所有的C++项目.除了如何更改src文件和程序名称之外,我真的不了解Makefile,我只是把它从互联网上删除了.