-1

2 つのクラスがあるとします。

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 を返しますA*getAnum()

于 2012-10-19T00:44:32.220 に答える
0

cout << ba->GetAnum(); 変数は公開されているため、アクセスできます。

于 2012-10-18T23:54:27.387 に答える