带有类的C++指针

C++ Pointers with classes

本文关键字:C++ 指针      更新时间:2023-10-16

我的编程教授要求我们:

  • 声明指针和Grade变量
  • 将变量的地址存储在指针变量中
  • 调用相应的函数打印输出。(请参阅使用指针表示法的函数,例如ptr->function())

然而,我有点困惑。"Grade"变量是一个类变量,但是我该如何声明指针呢?我是否将指针声明为int?

所以我会有这样的东西:

int *ptr;
Grade grade;
ptr = &grade;

你非常接近。但是,您声明了一个指向整数的指针。int *就是这个意思。您想要的是指向Grade:的指针

Grade* ptr;

到目前为止,你写的其余内容看起来都是正确的。

一旦有了ptr = &grade;,就可以用ptr->foo()代替grade.foo()来调用grade中的方法。两者都将在变量grade上调用方法foo()

如果您想要一个指向类T的指针,只需按照预期编写T* foo即可。总而言之:

//Declare Pointer and grade Variable:
Grade grade;
Grade* ptr;
//Store variable's address in pointer:
ptr = &grade;
//Call function:
ptr->function();

您声明了一个指向int的指针。
声明指向类型的指针总是:

type * ptr;

考虑到这一点:

Grade grade;
Grade *ptr;
ptr = &grade;
// use
ptr->function();