小编fed*_*edj的帖子

C++覆盖/过载问题

我在C++中面临一个问题:

#include <iostream>

class A
{
protected:
  void some_func(const unsigned int& param1)
  {
    std::cout << "A::some_func(" << param1 << ")" << std::endl;
  }
public:
  virtual ~A() {}
  virtual void some_func(const unsigned int& param1, const char*)
  {
    some_func(param1);
  }
};

class B : public A
{
public:
  virtual ~B() {}
  virtual void some_func(const unsigned int& param1, const char*)
  {
    some_func(param1);
  }
};

int main(int, char**)
{
  A* t = new B();
  t->some_func(21, "some char*");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用g ++ 4.0.1和编译错误:

$ …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance overriding overloading g++

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

什么时候真的创建了ContentProvider?

我有一个在Manifest中声明的ContentProvider,什么时候才真正创建?应用程序启动但在启动第一个活动之前?第一次查询/更新/插入完成后?什么时候 ?

android android-contentprovider

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

数据对齐和继承问题

在64位上考虑这些结构:

struct base
{
  long a;
};

struct derived : public base
{
  long b;
  char c;
};
Run Code Online (Sandbox Code Playgroud)

我得到24的大小和填充警告,但我不明白为什么.对我来说,具有这种继承的数据是这样对齐的

a
b
c
Run Code Online (Sandbox Code Playgroud)

因此a在8,b上对齐,c是char并且在1上对齐.那么问题是什么,为什么大小为24?

c++ data-structures

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