1 #include <iostream>
2 using namespace std;
3 class A{
4 public:
5 void func(){cout << "A func()" << endl;}
6 };
7 void test(){
8 A *p;
9 {
10 A a;
11 p = &a;
12 }
13 p->func();
14 }
15 int main()
16 {
17 test();
18 return 0;
19 }
我看这段代码问题:1.你说那是不是野指针,是,但是并不是所有的野指针都会引发错误(因为没有引发内存冲突问题)。2.A *p; 建议用new的方法;3.第9行和第12行的{}有用么?
有点不理解的是这个作用域和一个函数的作用于相同吗?
A的这个方法是关键。。
因为这个方法内没有访问A的任务东东。也就是没有访问this指针。因此调用有效。
如果方法中有访问A的字段就不行了。。