小编Wil*_*ill的帖子

嵌套If(x)检查 - 更好的方法来写这个?

在我用它们执行操作之前,有些地方检查有效指针; 这些检查有时可以很深入地嵌套.

例如,我有

if (a)
{
  if (a->b())
  {
    if (a->b()->c())
    {
      a->b()->c()->DoSomething();
    } 
  }
}
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢这个样子.有没有办法把它变成更具可读性的东西?理想的情况下,

if (a && a->b() && a->b()->c() )
{
 ...
}
Run Code Online (Sandbox Code Playgroud)

会很棒,但显然不会奏效.

编辑 - nvm我提出的例子正如大家所指出的那样工作.我测试了它是否有效,但我的测试中的代码中有一个错误.咄!

c c++

7
推荐指数
3
解决办法
760
查看次数

Doxygen:在"相关页面"部分下添加自定义链接

我有几个html页面解释了我的代码的不同部分,我最近也运行了Doxygen.我想在Doxygen'd"相关页面"页面下添加指向当前html页面的链接.

除了手动插入之外,有没有其他方法可以做到这一点?

doxygen

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

将Derived类的构造函数中的项插入Base类的私有std :: vector的最佳方法是什么?

我有这些课程:

class Base
{
...
private:
std::vector<X> v;
};

class Derived : public Base
{
Derived(X*, int n);
};
Run Code Online (Sandbox Code Playgroud)

其中Derived的构造函数传递了一个项目X的数组,我需要在Base类中插入到我的vector v中.(X是智能指针)

目前我看到两种方法:

  1. 在Base中创建一个函数:InsertItem(X*),它将一个项插入向量中(1乘1)
  2. 在Derived中创建包含完整列表的向量,然后通过移动整个向量将其放入Base.

我没有看到#2的任何优势,但是想知道#1是否是一个好的解决方案,或者是否有更好的方法来做到这一点.

谢谢!

c++ inheritance stl

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

Mac OS X中类似Windows的Qt4菜单栏

我希望我的应用程序看起来与Windows版本类似:不是将菜单移到Os X的顶层菜单中,我希望我的程序将文件菜单放在应用程序本身的顶部.

我已经查看了有关此问题的Qt文档,但我似乎无法创建一个空的QMenuBar作为顶级QMenuBar.(我正在使用QMainWindow的子类......)

macos qt4 menubar

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

:: operator()做什么?

    struct reserved_memory
    {
     void *safety;
     size_t safety_size;
     reserved_memory(size_t size) : safety_size(size)
     {
       init();
     }

     bool use() {
        if (safety) {
            ::operator(safety); 
            safety=0;
            return true;
        } else
            return false;
     }
    private:
     void init() 
     {
        safety=::operator new(safety_size);
     }
   }
Run Code Online (Sandbox Code Playgroud)

我有这个没有编译的代码 - 我以前也没见过这个.这是调用构造函数吗?结构中没有重载()运算符...

c++ operator-keyword

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

标签 统计

c++ ×3

c ×1

doxygen ×1

inheritance ×1

macos ×1

menubar ×1

operator-keyword ×1

qt4 ×1

stl ×1