我目前正在
Type1 &GetType1() const
{
return *this->type1;
}
void SetType1(const Type1 &type1)
{
*this->type1 = type1;
}
并在类定义中
class Type2
{
public:
Type2();
virtual ~Type2();
Type1 &GetType1() const;
void SetType1(const Type1 &type1);
private:
Type1 *type1 = nullptr;
}
在主要
int main()
{
Type2 *type2 = new Type2();
Type1 *newType1 = new Type1();
type2->SetType1(*newType1);
delete type2;
delete newType1;
}
我的项目无处不在。在我看来,这不是一个非常安全的方法,有些情况下对象指向NULL等。 我想知道是否有更好的普遍接受的方式来做到这一点。也许opperation重载是一个好主意?
答案 0 :(得分:3)
如果你的类有一个可以为null的成员指针,那么只需从getter函数返回指针,让用户担心角落情况。
Type1* GetType1(){
return this->type1;
}
void SetType1(Type1* type1) {
this->type1 = type1;
}
如果成员实际上不能变为null,这是一个类不变量,那么我认为返回引用是一个好习惯,并在getter中使用断言。