-1

假设我们有两个类

class A
{
    public:
        Course ( int num ) ;
        int getAnum();

        int num;
}


A::A( int num )
{
    this->num = num;
} 

int A::getAnum()
{
    return this->num;
}

和其他班级

class B
{
    public:
        B ( A * a  = NULL);
        A * getA();      
    A * a;
}


B::B( Course * a )
{
    this->a = new A;
    this->a = a;
}
A * B::getA() { return this->a; }

主要是

A* a = new A(12);
B* b = new B(a);

问题是我如何打印数字

cout << b.getA->getAnum();

或者

 cout <<b.a->getAnum();

哪一个是正确的?我可以通过返回值指向另一个函数吗?两个代码示例中发生了什么,为什么?请不要注意语法错误。对于不适当的代码和糟糕的英语,我们深表歉意。感谢您的回答:)

4

2 回答 2

0

您的代码中有许多错误,通过解决这些错误,您可能会发现找到答案的更有用的东西,但除此之外,在 C++ 中为了调用您需要使用的函数operator(),因此您应该编写b->getA()->getAnum()而不是b->getA->getAnum(). 在你的版本b->getA中是一个函数,你不能应用operator->它!但是b->getA()调用那个函数并返回一个A*你可以用它来调用的getAnum()

于 2012-10-19T00:44:32.220 回答
0

cout << ba->GetAnum(); 由于您的 a 变量是公开的,因此可以访问它。

于 2012-10-18T23:54:27.387 回答