因此,我正在製作一個簡單的幾何程序,並進行測試編譯。錯誤:''在此範圍內未聲明
出於某種原因,當我編譯的代碼,我得到以下錯誤:
base.cc: In member function ‘void seg::init_seg(p, p)’:
base.cc:20:3: error: ‘mid’ was not declared in this scope
base.cc:22:3: error: ‘b’ was not declared in this scope
但有趣的是,這個錯誤不會出現點1和2,僅中期和b。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct p{
float x=0.0f,y=0.0f;
void init_p(float sx, float sy){
x = sx;
y = sy;
}
};
struct seg{
p 1, 2, mid, b;
float length = 0.0f, m = 0.0f;
void init_seg(p p1, p p2){
1.init_p(p1.x, p1.y);
2.init_p(p2.x, p2.y);
length = sqrt((1.x - 2.x)^2 + (1.y - 2.y)^2);
mid.init_p((1.x + 2.x)/2, (1.y + 2.y)/2);
m = ((1.y - 2.y)/(1.x - 2.x));
b.init_p(0, (1.y - (m*1.x)));
}
};
爲什麼會出現此錯誤,爲什麼只有這兩點?
1和2不允許作爲變量名稱。 – chris
使用數字作爲標識符是非法的。將它們重命名爲「one」和「two」。 – Yuushi