我知道this已经是一个指针,但我想知道this到底是什么。它是一个地址还是一个*类型的指针?
如果我将其存储到一个变量中,我将如何定义该变量?
让我们以此为例
class Adult
{
private:
Child child;
public:
Adult(){
child = new Child(this);
//to have something to hold onto and get back to the upper level of the hierarchy.
}
};
class Child
{
private:
Adult* my_adult;
public:
Child();
Child(Adult &hand){
my_adult = hand;
}
}好的,我遇到麻烦的地方是,当我试图构建这个项目时,它会输出my_adult = hand;的代码行,如果后面还有更多的代码,我会非常震惊。
sys/chin.cpp:19:14: error: cannot convert ‘Adult’ to ‘Adult*’ in assignment那么,当作为数据类型而不是访问成员来处理时,这是如何工作的呢?
发布于 2012-04-16 02:20:14
您正在尝试将对象赋值给指针。这是行不通的。此外,儿童必须在成人之前定义。否则,必须使用Child作为指针(和转发声明)来定义Adult。
https://stackoverflow.com/questions/10164707
复制相似问题