我在c ++中创建了一个小程序来了解有关指针对象的更多信息。但是我一直得到一个错误,指针对象“bar”不是更具体的类的一部分:
[Error] 'class ux' has no member named 'bar'
如下图所示:
class ux {
private:
int width;
int height;
public:
ux(int, int);
~ux();
int area();
};
ux::ux(int a, int b)
{
width = a;
height = b;
}
ux::~ux(){}
int ux::area()
{
return (width * height);
}
int main(int argc, char** argv) {
ux * foo;
ux * bar;
foo = new ux(2, 2);
foo->bar = NULL;
cout << foo->area() << "\n";
cout << foo->bar << "\n";
}
为什么会这样?我知道可以用箭头操作符指向另一个指针对象,但它在这里不起作用。
---------------------更新-----------------------
我不想用foo-&gt; bar做任何事情我只是想看到打印出来的地址或值但是我知道指针obj可以指向另一个指针obj。如果有人可以请指定显示此技术的链接,我将非常感激。
答案 0 :(得分:1)
->
不用于访问任意指针,它用于访问类的成员。您ux
班级的成员为width
,height
和area
。 bar
是ux
类型的完全独立的变量,您可以使用它,例如bar->width
,bar->height
或bar->area()
。
答案 1 :(得分:0)
在第foo->bar
行中,您要命令对象foo
执行名为ux
的班级bar
的功能。您定义的类ux
没有在类中定义的属性/函数。 You should read this article about operators。可能更容易了解更多关于C ++的类和对象然后深入研究指针。