在C ++中,为什么以下编译:
@csrf_exempt
def my_django_view(request):
if request.method == 'POST':
r = requests.post('http://127.0.0.1:8000/api/test/', data=request.POST)
else:
r = requests.get('http://127.0.0.1:8000/api/test/', data=request.GET)
if r.status_code == 201 and request.method == 'POST':
data = r.json()
testsave_attrs = {
"book": data["book"],
}
testsave= T1.objects.create(**testsave_attrs)
return HttpResponse(r.text)
elif r.status_code == 200: # GET response
return HttpResponse(r.json())
else:
return HttpResponse('Could not save data')
但不是以下内容:
struct test {
void foo() { this->bar++; }
int bar;
};
要清楚,我确实理解在第二种情况下void foo() { bar++; }
int bar;
缺少foo
的前向声明而且没有编译。但是我不明白为什么第一个因为同样的原因没有失败。
答案 0 :(得分:2)
如果是结构,则结构中可以使用成员变量的范围。因此,如果在结构中定义一个函数,该函数中的变量将可用。
但在第二种情况下情况并非如此。