2L这个是错误的:
程序代码:
//这是静态分配的
#include<iostream>
#include<string>
using namespace std;
class X{char *name;
X(){
char a[20]="Bob"; // 这里把函数内声明的a的地址给了name。构造函数退出后这个地址已是无效的。
name=&a[20]; // 而且撇开上面一点不谈这里也应该是&a[0]或a而不是&a[20],这不仅逻辑不对而且访问也越界了
}
};
另外楼主是对的,这里的name默认为private,应该只有成员函数才能访问。