- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Qt信号传递二维数组时,数组指针发生偏移
4月9日
Qt信号传递二维数组时,数组指针发生偏移
signals:??? void data(int, int [][3], int [][3]);int dd[5][3]= {1, 2, 3, 4};emit data(5, dd, dd);
// SIGNAL 0void test2::data(int _t1, int _t2[][3], int _t3[][3]){??? void *_a[] = { 0, const_castvoid*(reinterpret_castconst void*(_t1)), const_castvoid*(reinterpret_castconst void*(_t2)), const_castvoid*(reinterpret_castconst void*(_t3)) };??? QMetaObject::activate(this, staticMetaObject, 0, _a);}跟踪到这里发现经过const_castvoid*(reinterpret_castconst void*(_t2))处理,_t2和_t3的指针都被改变了。还没仔细研究类似情况是否会在其他情况下发生,暂做整理。============================================================数据类型转换:static_cast,const_cast等用法(转载) * C++提供了四种新的类型强制:
static_cast const_cast reinterpret_cast dynamic_cast
1)staic_cast静态强制;
不能在无关的指针之间进行static类型强制 class CAnimal { //... public: CAnimal(){} };
class CGiraffe:public CAnimal { //... public: CGiraffe(){} };
int main(void) { CAnimal an; CGiraffe jean;
an = static_castCAnimal(jean);//将对象jean强制成CAnimal类型 return 0; }
2、const_cast类型强制
const_cast类型强制将一个const变量变成一个非const的等价形式 int main() { const int j = 99; int * k;
k = const_castint *(j);//解除const return 0; }
3、reinterpret_cast运算符
reinterpret_cast运算符用来将一个类型指针转变为另一种类型的指针,也用在将整开型量转为指针,或将指针转为整型量上; int main() { int j = 10; int * ptr = j; char * cptr;
cptr = reinterpret_castchar *(ptr);//将int指针类型转变为char的指针类型
return 0; }
4、dynamic_cast运算符
dynamic_cast的主要目的是:
1)它返回派生类对象的地址; 2)它测试基类指针是否指向下一尖括号中所指定类型的对象
dynamic_cast是一个运行时类型信息,dynamic_cast运算符将指向派生对象的基类部分的基类指针转变为指向派生对象的派生类指针,dynamic_cast必须严格地指定与派生对象相同的类,或者它返回NULL指针; class CAnimal { //... }; class CGiraffe:public CAnimal { //... }; class CGoat:public CAnimal { //... };
int main() { CGiraffe gene; CAnimal * aptr = gene; CGiraffe * ptr1,* ptr2;
ptr1 = dynamic_castCGiraffe *(aptr); ptr2 = dynamic_castCGoat *(aptr); //return NULL
return 0; }
您可能关注的文档
最近下载
- 腐植酸中铜、锌、镍、铅、铬、镉、砷的测定电感耦合等离子体原子发射光谱法(ICP法).pdf VIP
- 差序格局完整版本.ppt VIP
- 2024年新中国成立75周年PPT举国同庆盛世华诞喜迎国庆课件.pptx VIP
- (正式版)C-J-T 24-2018 园林绿化木本苗.docx VIP
- (2023春)教科版四年级科学下册《 电和我们的生活》PPT课件.pptx VIP
- 国家电网行测笔试题库.pdf
- 批判性思维技能考核试题及答案.pdf VIP
- 韩语、日语、法语、德语、俄语、西班牙语、葡萄牙语、意大利语语言_学习_资料_下载地址.doc
- 2024年中级注册安全工程师之安全生产技术基础题库附答案(夺分金卷).docx
- KJZ-3500操作手册(正式版).pdf
文档评论(0)