这里是我做了什么: 我有一个简单的类:在C++中,对象可以为null吗?
class Person{
public:
Person();
}
And in my main:
int main() {
Person myPer = NULL;
}
这是不可能的,因为C++不允许,但是:
int main() {
Person* perPtr = NULL;
Person myPer = *perPtr; // corrected, it was &perPtr(typo error) before answers
}
编译没有问题,当我看到我确实能够有一个NULL对象。那么是不是违反了C++中只有指针可以为空的规则?或者在C++中是否有这样的规则? 第二个是我写这段代码之后,我添加了一个if语句来检查myPer是否为NULL,但是这给了我错误。那么它是否表明C++并不真正喜欢NULL对象的想法,无论你如何做对象NULL ...
'Person myPer =&perPtr;'是一个类型错误。你是不是指'Person myPers = * perPtr;'? – delnan
欢迎来到Stack Overflow!如果你正在学习C++,我会给你这个最重要的提示:仅仅因为它编译它并不意味着它是有效的或它应该工作。同样,仅仅因为它按照您的预期编译和运行,并不意味着它也是正确的。是的,C++是一个非常苛刻的语言:(我会推荐[很好的介绍C++书](http://stackoverflow.com/q/388242/46642)。 –
“这编译好”。不,它不。请复制粘贴(而不是重新输入)你编译的程序。 –