|
|
1
15
问题1的答案:
正确的。 问题2的答案:
它们没有正确的名称,通常您可以说大多数讨论的指针(除了这个),您需要讨论的所有内容也将应用于引用。通过initailizer列表以相同的方式初始化非指针、非引用成员。
问题4的答案:
它们可以声明为未初始化是。最好将它们初始化为空,因为这样您就可以检查它们是否有效。
问题5的答案:
可以使用指针或引用,但不能重新分配引用,引用不能为空。指针和任何其他变量一样,比如int,但它拥有一个内存地址。数组是另一个变量的别名。 指针有它自己的内存地址,而数组应该被视为共享它引用的变量的地址。 对于引用,在初始化和声明它之后,使用它就像使用它引用的变量一样。没有特殊的语法。
使用指针,要访问它保存的地址的值,必须
问题6的答案:
使用智能指针(请参阅boost::shared_ptr),以便在堆上分配时,不需要手动释放内存。我上面给出的例子都没有在堆上分配。下面是一个使用智能指针的例子。
问题7的答案:
问题是您没有指定初始值设定项列表。请看我对上述问题2的回答。结肠后的一切:
|
|
|
2
12
它们可以初始化。您只需要使用成员初始值设定项列表。
最好用这种方式初始化所有成员变量。否则,除了原始类型,C++将用默认构造函数初始化它们。在大括号内分配它们实际上是重新分配它们,而不是初始化它们。 另外,请记住,成员初始值设定项列表指定如何初始化成员变量,而不是顺序。成员按声明顺序初始化,而不是按初始值设定项的顺序初始化。 |
|
|
3
2
我在用
现在,您必须确保在构造默认值时foo是有意义的。您甚至可以检测到FOO是何时被默认构造的。
我完全同意这种观点,总是喜欢引用而不是指点。有两个值得注意的情况是,你无法摆脱一个参考会员:
|
|
|
4
1
定义条形图和条形图时,也会产生副作用。*
|
|
|
5
0
仅仅因为->语法繁琐而使用引用并不是最佳原因…引用在指针上有一个很好的宣传,即空值不可能不使用技巧,但在初始化时也有缺点,并且有意外非法绑定临时值的风险,这些临时值随后会超出范围(例如,在隐式转换之后)。 是的,智能指针(如boost指针)对于处理复合成员几乎总是正确的答案,而对于关联成员(shared_ptr)则偶尔也是正确的答案。 |
|
|
6
0
注意
这就是为什么它非常喜欢使用任一实例变量(如
|
|
|
Kris · 有没有办法获得可变结构字段的“引用” 3 年前 |
|
|
Jora Karyan · IF语句未按预期引发错误 3 年前 |
|
|
nedzad · 如何访问引用Firebase中其他对象的对象 7 年前 |
|
|
Empha · 从成员函数对对象所做的更改不会持续。范围/参考问题? 7 年前 |