我試圖讓我的頭繞着指針,所以我一直在閱讀和嘗試的東西。 目前我正試圖將成員函數放在類之外,但能夠從主函數內部訪問一個私有變量。從我讀過的內容來看,這是無法完成的,除非我在課堂上有指針。 所以我試着把一個函數返回一個指向我的私有變量的類,在類之外的所有其他成員函數。 但是,當我嘗試讀取私有變量我碰到編譯問題。試圖使用指針訪問類外部的私有變量,具有類外部的成員函數
我試過閱讀其他文章並嘗試他們的解決方案,但我只是越來越困惑。 理想情況下,我希望有一個名爲「area」的成員函數,它傳遞一個指向私有變量「radius」的指針並返回該區域。
這是我目前有:
#include <iostream>
#define PI 3.14159;
using namespace std;
class Circle{
private:
float radius;
protected:
float *radPtr = &radius;
public:
float getRadiusPtr(){
return *radPtr;
}
void getRadius();
void showRadius();
};
void Circle::getRadius() {
cout << "Enter Radius: "<< endl;
cin >> radius;
}
void Circle::showRadius(){
cout << "Radius: " << endl;
}
float Circle::area(*radPtr){
float ar;
float r = this.getRadiusPtr();
ar = PI * r * r;
}
int main(){
Circle c1;
c1.getRadius();
c1.showRadius();
cout << "Area: " << a << endl;
return 0;
}
@Dam他試圖瞭解指針。告訴他不要使用指針並不能達到目的。 – Barmar
我嘗試過使用ideone,它工作正常 但是,當我使用VisualStudio和g ++時,它給了我前面描述的錯誤。 –
只需按照您的要求更新ideone.com/49nrHE指針,也可以使用pow()來清除它。 – Dam