1.只能使用成员函数重载的运算符有:=、()、[]、->、new、delete
2.静态内部类不可以直接访问外围类的非静态数据,而非静态内部类可以直接访问外围类的数据,包括私有数据
3.下面程序运行后的结果为
char str[] = "glad to test something";
char *p = str;
p++;
int *p1 = reinterpret_cast<int *>(p);
p1++;
p = reinterpret_cast<char *>(p1);
printf("result is %s\n", p);
解:该题的关键是要认清楚强制类型转换后指针的类型。
p的类型为char *,p++后p指向str数组的第2个元素即字母“l”的位置。
p1的类型为int *,p1++后p1指向的位置增加4个字节,指向str数组中的第6个元素即字母“t”的位置。
因此最后p的内容为“to test something”。
C++运算符重载与内部类访问规则
本文详细解析了C++中只能通过成员函数重载的特定运算符,如=、()、[]等,并阐述了静态内部类与非静态内部类访问外围类数据的不同规则。此外,还通过一个实例解释了强制类型转换后指针操作的细节。
668

被折叠的 条评论
为什么被折叠?



