gpt4 book ai didi

c++ - 在构造函数中初始化成员时出错

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:39 27 4
gpt4 key购买 nike

我是 C++ 的新手,请多多包涵。

当没有有效值分配给成员时,是否有在构造函数中初始化成员的最佳实践?

例如:

device_123::device_123(data_struct_t * initData)  
{
if(initData==NULL)
{
print_error(0);
// what to initialize foo/bar to?
}
else
{
foo = initData->foo;
bar = initData->bar;
}
}

在“initData==NULL”的情况下,是否有一种干净的方法来初始化 foo 和 bar 说:“嘿,我们实际上没有得到分配给我们的正确值”。

我知道这个问题听起来可能特定于我的代码实现应该如何解释 foo/bar,但我只是想知道是否有最佳实践。

最佳答案

如果您想确保您的类构造函数仅采用有效指针,请更改签名以使用引用:

class defice_123 {
public:
defice_123(data_struct_t& initData) : foo(initData.foo), boo(initData.boo) {
}
...
};

关于c++ - 在构造函数中初始化成员时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38859750/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com