在诸如此类的情况下,在结构上使用类是否有任何优势?(注意:它只会保存变量,永远不会有函数)
class Foo {
private:
struct Pos { int x, y, z };
public:
Pos Position;
};
Run Code Online (Sandbox Code Playgroud)
与:
struct Foo {
struct Pos { int x, y, z } Pos;
};
Run Code Online (Sandbox Code Playgroud)
类似的问题:
一方面是结构通常用于聚合初始化数据结构,因为所有非静态数据成员无论如何都必须是公共的(C++ 03,8.5.1/1).
struct A { // (valid)
{
int a;
int b;
} x = { 1, 2 };
struct A { // (invalid)
private:
int a;
int b;
} x = { 1, 2 };
class A { // (invalid)
int a;
int b;
} x = { 1, 2 };
class A { // (valid)
public:
int a;
int b;
} x = { 1, 2 };
class A { // (invalid)
public:
int a;
private:
int b;
} x = { 1, 2 };
Run Code Online (Sandbox Code Playgroud)
struct并且在C++中class表示完全相同的事情,除了struct成员和base的默认访问是公共的,而对于类是私有的.我倾向于为只有公共成员的类和其他所有类的类选择struct,但它只是一个样式问题.
| 归档时间: |
|
| 查看次数: |
10528 次 |
| 最近记录: |