小编SCF*_*nch的帖子

线程本地存储macosx

http://developer.apple.com/mac/library/documentation/DeveloperTools/gcc-4.0.1/gcc/Thread_002dLocal.html

文档__thread

但我的 g++ 抱怨我的 arch(Macbookpro 上的 Leopard)不支持 __thread。

为什么是这样?我该如何解决它?

thread-local-storage

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

为什么Base*pd = new派生; 生成错误?

鉴于此代码:

class Base{ 
public: 
    Base(); 
    virtual ~Base(); 
}; 

class Derived: protected Base{ 
public: 
    virtual ~Derived(); 
}; 
Run Code Online (Sandbox Code Playgroud)

在主要我试图以这种方式分配派生到基地:

Base *pd = new Derived;
Run Code Online (Sandbox Code Playgroud)

为什么这个语句会产生错误?

这里new将返回一个对象类型的指针,我们总是可以将一个派生指针分配给一个基类.如果我错了,请纠正我.

c++ inheritance new-operator

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

打破封闭原则的工厂

Abstract Factory/Factory方法的经典实现基于多态性.但在最低级别,我们必须有一些不基于多态性的工厂,并打破开放原则:

public Device Create(string deviceName)
{
  switch (deviceName)
  {
    case "Device1": return new Device1();
    case "Device2": return new Device2()'
    default: throw new NotSupportedDeviceException(deviceName);
  }
}
Run Code Online (Sandbox Code Playgroud)

这种工厂有什么特别的名字吗?

design-patterns

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

关于将值与pi进行比较的MATLAB中的问题

我想在MATLAB中找到pi,当我把它与已经在MATLAB中体现的pi进行比较时.所以当我写作

while(p~=pi)             
Run Code Online (Sandbox Code Playgroud)

循环似乎无穷无尽,因为它一直在测试MATLAB pi所具有的所有数字.

所以当我写道:

p=3.1416;
if p==pi
  disp('yes');
else
  disp('no');
end
Run Code Online (Sandbox Code Playgroud)

答案自然是否定的.所以我想找到一种方法,在点之后只保留五位数并用它测试,测试pi = 3.14159.

有人可以帮忙吗?

matlab pi

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