【发布时间】:2025-12-14 10:45:01
【问题描述】:
class Person {
.....
}
class Book {
string title;
Person person;
....
Person getPerson() {
return person;
}
....
}
int main() {
Person p1;
Book b1;
b1.setPerson(p1);
b1.getPerson();
}
我的问题是 b1 中 person 的值是什么,b1.getPerson() 返回什么?如何检查该字段是否有值?我想检查这本书是否有指定的人,如果没有,则指定一个人。
bool isPerson(Person _person, Book _book) {
if (_book.getPerson() == NULL) {
_book.setPerson(_person);
return true;
}
else {
return false;
}
这是我想做的,但是 ==NULL 不正确。
谢谢!
【问题讨论】:
-
Book有一个默认构造的Person。是一个对象,不太可能和NULL相提并论,NULL是用来表达空指针的。 -
要添加到@juanchopanza,您的
Book构造函数应该包含以某种方式调用和初始化Person构造函数的逻辑。 -
这就是你在 JAVA 中要做的事情。在 C++ 中,如果你不将某些东西声明为指针,你也不能将 NULL 分配给它。 person 不是你的类中的指针,而是你的 book 类直接包含 person 对象,因此它也不能是 ull
-
非常感谢大家!