小编joh*_*ohn的帖子

正确性和硬件写入

说我有以下成员函数:

void CFoo::regWrite( int addr, int data )
{
  reg_write( addr, data ); // driver call to e.g. write a firmware register
}
Run Code Online (Sandbox Code Playgroud)

显然,调用此函数不会修改调用它的对象的内部状态.但是,它会更改此Foo实例所代表的任何状态.

在这些情况下,应该Foo::regWrite(int addr, int data)是const函数吗?

c++ const-correctness

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

我应该捕获OutOfMemoryError吗?

一般的建议是你不应该捕获java.lang.Error,除非在特殊情况下,请参阅捕获Throwable是不好的做法?例如.

我的情况是我有一个程序有时耗尽内存并抛出java.lang.OutOfMemoryError.虽然没有从中恢复但我确实想知道它发生了,所以我希望在日志中看到一些东西和非零退出代码.那么这样的建议是什么?

public static void main(String[] args)
{
    try
    {
        ...
    }
    catch (Exception e)
    {
        e.printStackTrace();
        System.exit(1);
    }
    catch (OutOfMemoryError e)
    {
        e.printStackTrace();
        System.exit(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

另一个程序是类似的,除了它可能是消耗所有内存的一个特定线程.在这种情况下,如果该线程退出,则可以继续处理,我真正想要的只是查看日志并最终具有非零退出代码.那么我应该在那个线程运行方法中捕获OutOfMemoryError吗?

java out-of-memory

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

如何在C++中使用operator ^

我在C中理解,运算符^用于逐位EX-OR.在其中一个C++代码中,我看到了以下使用此运算符的行:

 using namespace System::Threading;
 public ref class Expert : public System::Windows::Forms::Form
{
    int i ;
        float a ;


public:
    int count;
    Thread^ th;

     }
Run Code Online (Sandbox Code Playgroud)

^这里是什么意思?

c++ c++-cli

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

标签 统计

c++ ×2

c++-cli ×1

const-correctness ×1

java ×1

out-of-memory ×1