小编Vla*_*irS的帖子

c ++存储对象的类型,更好的选择是什么?

没有RTTI和虚函数.

我遇到了两种不同的常见解决方案来提供对象的类型:

使用虚方法调用并在方法中保留id:

class Base {
 public:
 virtual ~Base();
 virtual int getType() const =0;
};
class Derived : public Base {
 public:
 virtual int getType() const { return DerivedID; }
};
Run Code Online (Sandbox Code Playgroud)

使用内联方法调用并在基类中保留id:

class Base {
 int id_;
 public:
 virtual ~Base();
 inline int getType() const { return id_; }
};

class Derived : public Base {
 public:
  Derived() { id_=DerivedID;}
};
Run Code Online (Sandbox Code Playgroud)

一般来说什么是更好的选择,它们的利弊是什么?

c++

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

bash崩溃在cygwin add_item("\ ??\C:\ cygwin","/",...)

我试图在Windows群集上运行应用程序.我收到像波纹管一样的随机崩溃,但大多数时候都有效.我怀疑它是着名的问题,但cygwin的rebase没有帮助.

谢谢你的建议.

2 [main] bash 12840 C:\cygwin\bin\bash.exe: *** fatal error - add_item ("\??\C:\cygwin", "/", ...) failed, errno 1
Stack trace:
Frame     Function  Args
002868A8  6102F97B  (002868A8, 00000000, 00000000, 00000000)
00286B98  6102F97B  (6119FE20, 00008000, 00000000, 611A1C8F)
00287BC8  6100652C  (611DF498, 00287BF4, 00000000, 60FE000C)
00287BE8  61006568  (611DF498, 00289C10, 00000001, 0003000A)
0028AC28  610917E4  (60FE000C, 20000C08, 0028ACF8, 61083290)

0028AC58  610D40FF  (004C46B0, 01D05699, 004657E0, 612729D4)
208979 [main] bash 12840 exception::handle: Exception: STATUS_ACCESS_VIOLATION
Run Code Online (Sandbox Code Playgroud)
  • cygwin 6.1
  • Windows Server 2008 R2 Ent

我已经解释了cygwin支持人员的错误(感谢Corinna):

这不是一个rebase问题.这显然是各种各样的并发问题.在提升每用户共享内存区域的同时,两个或多个进程正在尝试设置相同的挂载点.

这不应该发生.实际上只 …

windows cygwin

5
推荐指数
0
解决办法
809
查看次数

标签 统计

c++ ×1

cygwin ×1

windows ×1