首页 > 解决方案 > 结构和类成员结构 C++

问题描述

在创建结构或类时,通常属性根本没有特定的值,当它们调用构造函数时,它们会分配所需的值。

struct Point{
    int x;
    int y;
}

Point myPoint = {0,0};

但是,以下情况何时合适?

struct Point{
    int x = 0;
    int y = 0;
}

我以某种方式尝试指定每个属性的默认值,然后在必要时更改它

Point center; //This is (0,0) by default

Point myPoint;
myPoint.x = 7;
myPoint.y = 14;

此外,这些方法在使用类时是否有效?

标签: c++

解决方案


但是,以下情况何时合适?[使用默认成员初始化器的示例]

取决于您使用的标准版本,以及您对课程的需求:

  • 在 C++11 之前它是不合适的,因为那是在语言中引入默认成员初始化器的时候。
  • 如果您需要将类作为聚合,则在 C++14 之前是不合适的,因为默认成员初始化器会取消该类在该版本之前作为聚合的资格。

否则,假设存在合理的默认值,则提供默认成员初始化器是合适的。

此外,这些方法在使用类时是否有效?

是的; 两者都是有效的。


推荐阅读