c++ - 结构和类成员结构 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++11 之前它是不合适的,因为那是在语言中引入默认成员初始化器的时候。
- 如果您需要将类作为聚合,则在 C++14 之前是不合适的,因为默认成员初始化器会取消该类在该版本之前作为聚合的资格。
否则,假设存在合理的默认值,则提供默认成员初始化器是合适的。
此外,这些方法在使用类时是否有效?
是的; 两者都是有效的。
推荐阅读
- django - django 如何使用外键添加多个图像
- entity-framework-core - 为什么 script-migration 生成所有迁移脚本而不是最后一次迁移?
- android - 如何使用 DatePickerDialog 仅显示选定的日期
- flutter - 无法在颤动中解析配置“:classpath”的所有工件
- .net - 如何在 IIS 2016 中将多个 SSL 连接到多个站点
- react-hooks - “react-hooks/exhaustive-deps”:eslint-plugin-react-hooks 的“警告”太敏感了?
- java - 如何隐藏和取消隐藏导航项单击的视图?
- java - java.net.ConnectException:连接被拒绝:在 java.net.PlainSocketImpl.socketConnect(本机方法)处连接
- flutter - 颤振:google_mobile_ads 酒吧。如何实现 GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth & GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth?
- c# - C# 静态方法是否同步和锁定?