亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么for循環,有關p的提示:表達式必須包含指針類型?

#include<stdlib.h>

#include<iostream>


class Coordinate

{

public:

int x;

int y;

void printX()

{

std::cout << x << std::endl;

}

void printY()

{

std::cout << y << std::endl;

}

};


int main(void)

{

Coordinate coor;? ? ? ? ? ? ? ? //用棧實例化對象

coor.x = 10;? ? ? ? ? ? ? ? ? ? //用棧訪問對象

coor.y = 20;

coor.printX();

coor.printY();


Coordinate *p = new Coordinate[5];

if (p = NULL)

{

return 0;

}

for (int i = 0; i < 5; i++)

{

p[i]->x = 0;

p[i]->y = 2;

p[i]->printX();

p[i]->printY();

}

delete[]p;

p = NULL;


std::system("pause");

return 0;

}



正在回答

1 回答

因為你在這里:

Coordinate *p = new Coordinate[5];

實例化了一個指針類型的對象(不知道這么表達對不對)所以下面應該是對指針指向的變量賦值。

而你的寫法是錯誤的,不是指針。應該將p[i]->x = 0;改為p->x = 0;(p->x應該看作一個整體,意為

p所指向元素的x成員
0 回復 有任何疑惑可以回復我~
#1

weixin_慕沐4018656 提問者

可是我是按老師上課講的示例操作的呀,老師就是那樣寫的
2020-04-03 回復 有任何疑惑可以回復我~
#2

一名不愿透漏姓名的沙雕 回復 weixin_慕沐4018656 提問者

我又看了一下,老師后面代碼演示不是這么寫的;你是不是看成視頻中間那里對數組成員的訪問了,你前面寫的類里面是單一變量呀
2020-04-03 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之封裝篇(上)
  • 參與學習       103391    人
  • 解答問題       732    個

封裝--面向對象的基石,本教程力求幫助小伙伴們即學即會

進入課程

為什么for循環,有關p的提示:表達式必須包含指針類型?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號