小编mri*_*ing的帖子

构造函数上没有括号,没有参数是语言标准吗?

我正在使用g ++编译Cygwin中的C++程序,我有一个类,其构造函数没有参数.我有线:

MyClass myObj();
myObj.function1();
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我收到了消息:

error: request for member 'function1' in 'myObj', which is of non-class type 'MyClass ()()'
Run Code Online (Sandbox Code Playgroud)

经过一番研究,我发现修复是将第一行更改为

MyClass myObj;
Run Code Online (Sandbox Code Playgroud)

我可以发誓我之前用C++中的括号做了空构造函数声明.这可能是我正在使用的编译器的限制,还是语言标准真的说不使用括号用于没有参数的构造函数?

c++ standards constructor

49
推荐指数
4
解决办法
3万
查看次数

如何从System.Windows.Forms.Form中获取HWND句柄

鉴于形式

System.Windows.Forms::Form Form1;
Run Code Online (Sandbox Code Playgroud)

和窗口句柄

HWND hWnd;
Run Code Online (Sandbox Code Playgroud)

我如何将hWnd设置为Form1的Handle属性,该属性确实作为公共属性存在"获取控件绑定的窗口句柄.(继承自Control.)"根据System.Windows.FormsMicrosoft文档::表格?在Form Form1的构造函数中,我试过了

hWnd = this.Handle;
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨:

错误C2228:'.Handle'的左边必须有class/struct/union类型是'MyNamespace :: Form1 ^ const'你打算用' - >代替吗?

所以我试试

hWnd = this->Handle;
Run Code Online (Sandbox Code Playgroud)

只是

hWnd = Handle; // Since I'm in the Form
Run Code Online (Sandbox Code Playgroud)

然后编译器说:

错误C2440:'=':无法从'System :: IntPtr'转换为'HWND'没有可用于执行此转换的用户定义转换运算符,或者无法调用运算符

handle visual-studio visual-c++ winforms

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

Java如何有效地搜索jar文件的类?

假设我有500个jar文件链接到我的程序总计超过500 MB(所有jar的大小,而不是每个jar),我的程序调用位于其中一个的类.Java如何通过jar搜索类,这是什么效率?上)?O(日志(n))的?

java algorithm performance search jar

12
推荐指数
2
解决办法
1536
查看次数

GLib-GIO-CRITICAL断言错误的含义

我成功编译了以下程序simple.cc:

#include <gtkmm.h>

int main (int argc, char *argv[])
{
  Glib::RefPtr<Gtk::Application> app = 
    Gtk::Application::create(argc, argv,
      "org.gtkmm.examples.base");

  Gtk::ApplicationWindow window;

  return app->run(window);
}
Run Code Online (Sandbox Code Playgroud)

使用以下命令:

g++ simple.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs`
Run Code Online (Sandbox Code Playgroud)

这给了我简单的可执行文件,但是当我尝试运行它时,我收到以下错误:

(simple:2964): GLib-GIO-CRITICAL **: g_application_list_actions: assertion `application->priv->is_registered' failed
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

据我所知,我有最新最好的GLib包.我正在运行Ubuntu 12.04 LTS.

ubuntu runtime-error glib

5
推荐指数
1
解决办法
5244
查看次数

一个刚接触窗口应用程序的人应该学习X,GTK +,还是什么?

假设选择值的因素是可用的小部件库,学习曲线的斜率和可移植性程度(它所使用的平台).就语言绑定而言,我正在使用C++.

谢谢!

c c++ graphics user-interface

4
推荐指数
3
解决办法
338
查看次数

在MATLAB中有什么类似'whereis'的东西吗?

我在我正在处理的代码中有一行代码:

feval('func_name', myArg);
Run Code Online (Sandbox Code Playgroud)

它有效,但我想知道它在哪里func_name.我无法介入feval,看看它在哪里找到func_name.代替(或除)只是做func_name,我怎么能得到MATLAB告诉我在那里找到了吗?

matlab function path

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

为什么有人会在Matlab函数中返回数组中的矩阵?

我是Matlab的新手,但我正在寻找一个像这样开始的函数:

function [res] = process(input)
Run Code Online (Sandbox Code Playgroud)

在函数内部定义res,用输入中的字段做一些东西,然后将这些东西的结果放在res中.我想知道在函数声明中使用[]而不是喜欢的原因是什么

function res = process(input)
Run Code Online (Sandbox Code Playgroud)

我经常看到它.也许如果你们中的一个人可以说"把结果放在一个阵列中是好的,因为那样你就可以......"谢谢.

matlab function return-type

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

在最小C程序上生成的汇编指令的目的是什么?

我反汇编了编译非常简单的源文件test.c的代码,它看起来像这样:

void main() {}
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

 gcc -c test.c 
 ld -o test -Ttext 0x0 -e main test.o 
 objcopy -R .note -R .comment -S -O binary test test.bin
 ndisasm -b 32 test.bin
Run Code Online (Sandbox Code Playgroud)

前四行的所有目的是什么?为什么它会添加到eax指向的内存位置,2*eax,edx + 0x52,比较等等?这是关于检查程序是否正确执行或其他什么?

x86 assembly nasm elf disassembly

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

什么是接近整数序列问题的良好通用算法?

假设输入将始终是相同的数字N(例如,5)并且假设整数实际上具有数学关系(数字'一','二',第n个月的天数等等).输出将是下一个整数和发现的规则,或者是无法检测到规则的消息.我想要以一个二三顺序,一个模块试图通过在相邻的数字之间进行求和和/或差异来找到算术序列规则,一个距离,两个距离等等.寻找模式,然后重点关注模块通过以相同的方式相乘和/或分割几何序列,然后,如果存在一般方法,则使用用于检测递归序列的模块.

谢谢!

algorithm math discrete-mathematics

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

为什么循环递减cx寄存器?

我正在尝试使用以下汇编代码将磁盘中的扇区加载到内存中,但是当我向终端找到一些int 0x10时,它无法工作的原因是它陷入无限循环.我认为循环会自动减少cx寄存器.下面是代码,测试show_message留下来让你看看我是如何得出循环没有递减cx的结论.我所看到的是msg_2"仍然在循环中"一遍又一遍地无止境.

另一个很好的答案是为什么读取永远不会成功(为什么进位标志永远不会清除),因为我非常有信心在调用时寄存器的值很好,但除了那些寄存器的内容不正确之外,如果有人能够在设置int 0x13时看到我做错了什么,那也会很棒.

最后一点:我知道ch是圆柱体的低8位,cl的两个高位是圆柱体的两个高位,cl的低6位是扇区数.我的东西在柱面0,扇区2,所以[CYLNUM]是0x00,[SECTNUM]是0x02.

;;;Load Memory;;;

load_mem:

 mov cx, 3        ;Try to read the drive 3 times



read_loop:

  xor ah, ah        ;ah=0, reset drive

  int 0x13            ;Call drive reset



  mov ax, [SYSADDR]

  mov es, ax        ;Destination- es:bx

  mov bx, 0



  mov dl, [DRIVENUM]

  mov dh, [HEADNUM]

  mov al, [NUMKERNELSECTS]

  mov ch, [CYLNUM]

  mov cl, [SECTNUM]

  mov ah, 0x02        ;ah=2, read drive

  int 0x13            ;Call read interrupt

  jnc exit            ;If carry flag is clear, exit
;;test;;
  mov si, msg_2
  call …
Run Code Online (Sandbox Code Playgroud)

x86 assembly infinite-loop

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

当我访问使用它们的网站时,Web字体在哪里?

我在Windows 7上使用Firefox 7.0.1,然后我去了一个使用奇怪字体的网页.我发现它不是图像 - 我可以选择文本.我在网站的CSS文档上找到了字体名称,并确保我的计算机上没有安装此字体.我想知道,当一个页面显示它使用浏览器所在的计算机上没有的某种字体时,浏览器是否会从Web服务器下载该字体文件的副本,仅供浏览器的渲染器使用?

如果是这样的话,当我在使用该字体的页面上时,它在我的计算机上的位置(暂时,我猜),它们是如何制作的,所以它只能用于该页面而不能复制到我的字体目录在我的系统上?

fonts webfonts

0
推荐指数
1
解决办法
167
查看次数