c++ - 如何通过指针从函数访问类的成员?

标签 c++ pointers

我愿意

  1. 创建类/结构项数组 (c1)
  2. 然后创建一个指向原始数组(*cp1)的指针数组,该数组可以进行排序
  3. 然后从函数内访问类的成员。

但是我陷入了初始函数调用。

这是我的基本代码:

struct Car
{
    int speed;
};

Car c1[5];
Car *cp1[5];

int main() {
    for (int i=0;i<5;i++) {
        c1[i].speed = i;
        cp1[i] = &c1[i];
    }

    garage(cp1, 5);
}

void garage(Car **ar, int n) {
    int p = (*ar[n / 2])->speed;
}

最佳答案

首先,您的 garage 函数在您调用它的地方不为编译器所知,因为它是在 main 下定义的。要修复这个问题,要么将函数定义放在 main 之上,要么用原型(prototype)引入它。

其次,在 int p = (*ar[n/2])->speed; 行,*ar[n/2] 不是指针,因此您应该使用 . 而不是 ->,如 int p = (*ar[n/2]).speed;

关于c++ - 如何通过指针从函数访问类的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33408970/

相关文章:

c++ - 函数是否应该返回 "new"对象

c++ - 具有 root 权限的库 (.so)

c++ - cygwin g++ 链接器找不到共享库

c - printf函数会影响变量的生命周期吗?

c - 更改位值如何影响地址

c++ - 为什么当对象引用不变时,允许更改作为指向另一个类的指针的成员变量?

c++ - 解释一下C++中的链接(外部/内部)?

android - NDK 中 undefined reference 错误

c++ - 平衡二叉树编码

c - 如何在不将其作为 C 函数的返回值的情况下修改 int 指针?