小编Mor*_*ork的帖子

跨文件共享静态变量:namespace vs class

这里有很多关于静态与全局的问题,但我认为我的问题有点不同.

我想知道是否有一种方法可以跨文件共享放置在命名空间中的变量,就像类中的静态变量一样.

例如,我编码:

//Foo.h
class Foo
{
  public:
  static int code;
  static int times_two(int in_);
};

namespace bar
{
  static int kode;
}
Run Code Online (Sandbox Code Playgroud)

-

//Foo.cpp
int Foo::code = 0;

int Foo::times_two(int in_)
{
  bar::kode++;
  code++;
  return 2*in_;
}
Run Code Online (Sandbox Code Playgroud)

-

//main.cpp
int main()
{
  cout << "Foo::code = " << Foo::code << endl;

  for(int i=2; i < 6; i++)
  {
    cout << "2 x " << i << " = " << Foo::times_two(i) << endl;
    cout << "Foo::code = " << …
Run Code Online (Sandbox Code Playgroud)

c++ static namespaces class

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

C++:使用std :: string在内存中移动jpeg是否安全?

我有一个external_jpeg_func()在char数组中使用jpeg数据来处理它的东西.我无法修改此功能.为了提供char数组,我做了类似下面的事情:

//what the funcs take as inputs
std::string my_get_jpeg();
void external_jpeg_func(const char* buf, unsigned int size);


int main ()
{
    std::string myString = my_get_jpeg();
    external_jpeg_func(myString.data(), myString.length() );
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:使用字符串传输char数组是否安全?jpeg(或者任何二进制文件格式)是否有可能遇到像'\ 0'这样的字符并导致数据丢失?

c++ string jpeg

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

mysql SELECT在单个表中的每个类别中最佳

假设我有一个名为Gamers的桌子. 玩家包含列GamerID,GameID,Score.

我有兴趣选择每场比赛得分最高的球员.

例如,

|Gamers
|-------------------------
|GamerID | GameID | Score
|1       | 1      | 10
|2       | 1      | 10
|3       | 1      | 10
|4       | 1      | 90
|5       | 2      | 40
|6       | 2      | 10
|7       | 3      | 10
|8       | 3      | 30
Run Code Online (Sandbox Code Playgroud)

在查询之后,我希望得到GamerID 4,5和8的行.这样做的查询是什么?

mysql sql

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

C++在子范围中重新声明变量不应该导致编译错误吗?

我遇到了一个必须换掉某个对象的值的情况.由于我自己的草率复制和粘贴,我不小心复制了类型声明.这是一个简化的例子:

int main()
{
    int i = 42;
    cout << "i = " << i++ << endl;

    // ... much later

    if( isSwapRequired == true )
    {
        int i = 24;
        cout << "i = " << i++ << endl;
    }
    cout << "i = " << i++ << endl;
}
Run Code Online (Sandbox Code Playgroud)

让我感到沮丧的是,编译器没有抓住这一点,并进一步让它i = 24活在自己的小范围内.然后,事实证明,在范围之外,i仍然是43.我注意到如果两者i都处于同一级别,那么编译器肯定会抓住这个错误.编译器是否有理由以不同方式处理多个声明?

如果重要,我正在使用VS10.

c++ visual-studio-2010

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

标签 统计

c++ ×3

class ×1

jpeg ×1

mysql ×1

namespaces ×1

sql ×1

static ×1

string ×1

visual-studio-2010 ×1