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