小编Rob*_*edy的帖子

函数try块何时有用?

我想知道程序员何时使用函数try块.什么时候有用?

void f(int i)
try
{
   if ( i  < 0 ) 
      throw "less than zero";
   std::cout << "greater than zero" << std::endl;
}
catch(const char* e)
{
    std::cout << e << std::endl;
}

int main() {
        f(1);
        f(-1);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:(在ideone处)

greater than zero
less than zero
Run Code Online (Sandbox Code Playgroud)

编辑:因为有些人可能认为函数定义的语法不正确(因为语法看起来不熟悉),我要说它不是不正确的.它叫做function-try-block.参见C++标准中的§8.4/ 1 [dcl.fct.def].

c++ function function-try-block

36
推荐指数
6
解决办法
9144
查看次数

如果在运行时间之前我不知道长度,我该如何声明一个数组?

我最初有一个数组[1..1000]被定义为全局变量.但是现在我需要那个是n,而不是1000,直到后来才发现n.我知道在填充数组之前n是什么,但我需要它是全局的,因此需要一种方法来在运行时定义全局数组的大小.

Context使用文件中字节的线性转换填充数组.我不知道文件有多大,直到有人想要打开它并且文件可以是任何大小.

arrays delphi global-variables redefine dynamic-arrays

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

为什么我可以为引用分配新值,如何引用引用呢?

我有几个与C++中引用的使用有关的问题.

  1. 在下面显示的代码中,它是如何工作的,而不是在线上给出错误q = "world";

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      char *p = "Hello";
      char* &q = p;
      cout <<p <<' '<<q <<"\n";
      q = "World"; //Why is there no error on this line
      cout <<p <<' '<<q <<"\n";
    }
    
    Run Code Online (Sandbox Code Playgroud)
    1. 如何将参考q重新初始化为其他内容?

    2. 不是字符串文字,p = "Hello"常量或只读空间?所以如果我们这样做,

      q = "World";
      
      Run Code Online (Sandbox Code Playgroud)

      不会p改变应该是常量的字符串吗?

  2. 我已经阅读了有关C++引用类型变量的内容,因为它们无法重新初始化或重新分配,因为它们作为常量指针"内部"存储.所以编译器会给出错误.

    但实际上如何重新分配参考变量呢?

    int i;
    
    int &j = i;
    
    int k;
    
    j = k; //This should be fine, but how we reassign to something else …
    Run Code Online (Sandbox Code Playgroud)

c++ reference

32
推荐指数
3
解决办法
5万
查看次数

如何在Emacs中更轻松地切换缓冲区?

我最近开始使用emacs,我很享受在大多数情况下使用它.我唯一不喜欢的是在缓冲区之间切换.我经常有几个缓冲区开放,我一直在使用的厌弃C-x bC-x C-b,是否有使缓冲区之间切换更容易的任何包?我已经在切换缓冲区上查看了emacs wiki,我很欣赏有关正在使用/享受的内容的反馈/反馈.谢谢.

emacs

32
推荐指数
4
解决办法
2万
查看次数

在嵌入式环境中使用html渲染器

我正在开发一个项目,我将为嵌入式设备设计一个GUI,并且很乐意为此使用HTML.我希望你们能帮我找到一个适合我需要的渲染引擎.

要求:

  • 必须将Web页面呈现到内存缓冲区中.然后我将内存缓冲区传输到显示器.

  • 我必须通过回调或事件通知渲染引擎需要获取新项目.HTML页面,图像等.原因是我必须获取资源并将其提供给渲染引擎(原因是设备在所有配置中都没有TCP/IP,然后需要获取项目串行线,并且为了安全,我需要验证是否允许请求).

  • 我必须能够将鼠标和键盘事件注入渲染引擎.

  • 只有C和/或C++

  • 必须易于移植,并且缺少对仅存在于win/linux/mac的库的依赖性.我运行的设备运行自定义操作系统...

  • 占用空间小,内存消耗小,在渲染过程中,我可能会占用10MB的占用空间和5-10 MB的内存.但不多.

  • 欢迎开源和商业解决方案

  • 我不需要完整的HTML5和CSS3支持,我的意思是如果我可以使用"基本HTML和一些CSS"我非常高兴.

我看过一些WebKit,铬,壁虎,berkelium和awesomium,但并没有真正发现它们符合我的需求.

那里有什么东西接近我需要的东西吗?或者我应该放弃这个想法并以其他方式构建GUI?我感谢任何帮助!

html c++ embedded user-interface rendering

29
推荐指数
2
解决办法
8767
查看次数

为什么copy-constructor参数为const?

 Vector(const Vector& other) // Copy constructor 
 {
    x = other.x;
    y = other.y;
Run Code Online (Sandbox Code Playgroud)

为什么参数是const?

c++ constructor

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

如何快速清除简单类型的记录?

我有一个像这样定义的结构:

const
  MaxSignalRecords=255;
type
  TSignalRecord=record
   signal1  : integer;
   signal2  : integer;
   signal3  : integer;
   signal4  : integer;
   signal5  : integer;
   signal6  : integer;
   bsignal1 : Boolean;
   bsignal2 : Boolean;
   bsignal3 : Boolean;
   bsignal4 : Boolean;
   bsignal5 : Boolean;
   bsignal6 : Boolean;
  end;

TListSignals = Array[0..MaxSignalRecords-1] of TSignalRecord;
Run Code Online (Sandbox Code Playgroud)

此结构用于在如下算法中进行数千次计算:

for i:=1 to 900000 do
begin
  CleartheList(MyList);
  DotheMath(MyList);
  DotheChart(MyList);
end;
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种快速的方法来将我的值初始化TListSignals为0和false.

现在我用这个:

procedure ClearListSignals(var ListSignals:TListSignals);
var
  i :Integer;
begin
  for i := 0 to MaxSignalRecords - 1 do …
Run Code Online (Sandbox Code Playgroud)

delphi

28
推荐指数
4
解决办法
2万
查看次数

内存加密了吗?

我想将一些数据存储在一个变量中(我知道变量存储在内存中).内存中的数据是否加密?此外,软件是否有可能读取存储在内存中的变量名称并能够实际从中提取数据?

php c++

27
推荐指数
4
解决办法
1363
查看次数

为什么省略"#include <string>"有时会导致编译失败?

我是C++的初学者.当我编写代码时,有时我会写#include <string>代码并且代码可以正常工作,有时我不会编写#include <string>代码并且代码不起作用.但有时它没有#include <string>.

所以我必须写,#include <string>以便代码有效吗?

c++ string include

27
推荐指数
2
解决办法
3126
查看次数

int,char,float和bool,哪个最小?

以下内容来自"在家填写"编程测试,该测试是英国大学游戏开发理学硕士申请流程的一部分:

C++基础知识

如果程序声明了四个变量,一个是类型int,一个是类型 float,一个是类型char,还是一个类型bool,哪个变量占用内存中的空间最小

  1. INT
  2. 烧焦
  3. 浮动
  4. 布尔

根据指示,只有一个真实的陈述.但是,我的C++书(C++ Pocket Reference,O'Reilly)指出:"bool的典型大小是一个字节","char的大小是一个字节.技术上,字节的大小是实现定义的,但是它几乎不是八位."

我在这里误解了什么吗?你会给出什么答案?为什么?

c++ types

27
推荐指数
4
解决办法
5959
查看次数