简单的指针对象错误C ++

时间:2015-11-23 23:00:01

标签: c++ pointers

我在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。如果有人可以请指定显示此技术的链接,我将非常感激。

2 个答案:

答案 0 :(得分:1)

->不用于访问任意指针,它用于访问类的成员。您ux班级的成员为widthheightareabarux类型的完全独立的变量,您可以使用它,例如bar->widthbar->heightbar->area()

答案 1 :(得分:0)

在第foo->bar行中,您要命令对象foo执行名为ux的班级bar的功能。您定义的类ux没有在类中定义的属性/函数。 You should read this article about operators。可能更容易了解更多关于C ++的类和对象然后深入研究指针。