1...void* 泛型指针有什么用.是怎么用的
2...看一下一段程序
int i=100;
int const &ii=i;
i++;
cout<<ii<<endl;
结果是101,那不是意味着ii的const属性是不对的
3...引用是不是一开始定义时就要赋值.另外可不可以一开始我 int& a=i;我在a=j;(i,j都是int型)
4...c++里*p++是等同与*(p++),如果一个p++向后移了4个byte,那我要移一个byte应怎么做
5...member function definition looks like a ctor这句话什么意思
1:该指针主要用在通用的一些指针和链表当中,可以通过强制转换将某个指针赋给void指针,然后操作
2:const属性本来就有局限性的,就本例来说ii本身并没有改变,他的值的改变是通过i来实现的。从某种意义上说,他还是一个常引用
3:是的,引用开始就得赋值,理论上是可以改变引用的对象的,除非你的限制
4:把p变成一个char指针
5:ctor是那个国家的单词,反正我是没见过,所以没法解释
1 想想吧 可以赋值为任何类型的指针 万能啊 会没用吗 呵呵
2尽管ii是i的别名 但仅为别名而已 二者还不是一会事 const&ii=i意味着
ii不可以变 但i的值可以变
3是的
4 p+=1
5me没见过
const reference的确向编译器声明引用不能改变被参考的原始变量的值,可是你直接改变了原始变量的值,这是另外一回事情,如果你试着通过修改ii而改变i的值,编译器就会给出错误诊断,这才是const reference的作用。
引用的实质就等效于const pointer,如你的例子中的ii就类似于
int const * const pi=&i,不过这样在使用时就会经常出现*pi这样的用法,没有ii方便罢了。
如果你在引用被定义之后赋值的话,改变的不是引用参考的对象,而是被参考的对象的值。
如果你要改变p++的指针移动,可以使用reinteperete_cast<char *>将p转型为char *型的指针。但是请确信你自己在做什么。
ctor是一个programming的专有词汇,以前听人介绍过,现在忘记了,如果你把比较完整的context贴出来,我也许可以想起来。