此常见问题解答涉及聚合和POD,并涵盖以下材料:
在阅读一些 boost 库源代码时我遇到了这部分
template< class Value = double >
struct rk4_coefficients_a3 : boost::array< Value , 3 >
{
rk4_coefficients_a3( void )
{
(*this)[0] = static_cast<Value>(0);
(*this)[1] = static_cast<Value>(0);
(*this)[2] = static_cast<Value>(1);
}
};
Run Code Online (Sandbox Code Playgroud)
结构体名称后面的冒号 (:) 是什么意思?
我刚刚从这个Q/A中发现结构在C++中是可继承的,但它是一个好的实践,还是更适合使用类?哪种情况更可取,哪种情况不适合?
我从来没有需要这个,但现在我有一堆不同类型但经度相同的消息.我在char数组中使用二进制文件,我只是将它们与memcpy一起复制到结构中以填充其字段(我不知道是否甚至可以使用std :: copy).
我想能够使用公共头继承基础结构中的每个结构都很棒,这就是我搜索它的原因.所以第二个问题是:如果我用类做这个,是否可以从缓冲区到类中执行memcpy(或std:copy)?
结构是否支持继承?我认为这是一个愚蠢的问题,但我对此并不太了解.
编写这样的代码是什么意思:
struct A {
void f() { cout << "Class A" << endl; }
};
struct B: A {
void f() { cout << "Class B" << endl; }
};
Run Code Online (Sandbox Code Playgroud)
在结构中也会出现私有部分,它们不会给出封装吗?结构和类之间的主要区别是什么?